-
Content Count
2015 -
Joined
-
Last visited
-
Days Won
26
Everything posted by Attila Kovacs
-
For those who prefer designing an application visually rather than coding it, this could be useful.
-
sorry, not Sherlock but @Rollo62 https://embt.atlassian.net/servicedesk/customer/portal/1/RSS-441 still laughing? đ
-
Thanks Lars, that did the trick indeed. I'm still not satisfied with the new system. It's similar as the "new forum" was = lame AF.
-
well, at the end it's an April Fools' Joke indeed.
-
Is this an April 1 joke?
-
I'm rather concerned about how the multiple windows will interact with older plugins and all of my stuff.
-
Wow, from now on, you can open the same file multiple times. That's going to be interesting.
-
that's quite a list
-
I read something in so from you but I can't find it, it was about the whole rtl float handling is rubbish or something like that. Not sure about the details.
-
You wanted to make your math lib available for the public, back in the days. Still waiting đ
-
challenge Offical launch of the 1 Billion Row Challenge in Object Pascal
Attila Kovacs replied to Gustavo 'Gus' Carreno's topic in Tips / Blogs / Tutorials / Videos
var c : currency; begin c := Wert * 10; .... should make it calculating the same on all platforms, but I'm AFK at the moment.- 69 replies
-
- object-pascal
- free-pascal
-
(and 1 more)
Tagged with:
-
Simplified Debug Visualizers for all my TNullableTypes
Attila Kovacs replied to dummzeuch's topic in Tips / Blogs / Tutorials / Videos
I do it this way: function TDSH3Visualizer.GetReplacementValue(const Expression, TypeName, EvalResult: string): string; begin ... if MatchText(TypeName, ['TFInteger', 'TFLargeInt', 'TFBit']) then DefExpr := Expression + '.AsInteger'; ... Eval(DefExpr, '', Result); end; Edit: you can also Eval() private fields like FIsNull FIsUndefind etc. very fast methods are slower, exceptions are very slow in the Eval() function TXYZVisualizer.Eval(const Expr: string; const FormatSpecifiers: string; var EvalResult: string): Boolean; var Done: Boolean; ResultStr: array [0 .. 255] of Char; ResultAddr, ResultSize, ResultVal: LongWord; EvalRes: TOTAEvaluateResult; CanModify: Boolean; begin Result := False; EvalResult := 'XYZ Visualizer error'; repeat Done := True; EvalRes := FCurThread.Evaluate(Expr, @ResultStr, Length(ResultStr), CanModify, eseAll, PAnsiChar(AnsiString(FormatSpecifiers)), ResultAddr, ResultSize, ResultVal, '', 0); case EvalRes of TOTAEvaluateResult.erOK: begin EvalResult := ResultStr; Result := True; end; TOTAEvaluateResult.erDeferred: begin FCompleted := False; FDeferredResult := ''; FNotifierIndex := FCurThread.AddNotifier(Self); try while not FCompleted do FDebugSvcs.ProcessDebugEvents; finally FCurThread.RemoveNotifier(FNotifierIndex); end; FNotifierIndex := -1; if FDeferredResult <> '' then EvalResult := FDeferredResult; Result := True; end; TOTAEvaluateResult.erBusy: begin FDebugSvcs.ProcessDebugEvents; Done := False; end; TOTAEvaluateResult.erError: begin Result := False; end; end; until Done; end; -
Delphi and "Use only memory safe languages"
Attila Kovacs replied to Die HollÀnder's topic in General Help
As an additional note to this "safety" topic. Just yesterday, it happened to me that the type of a form event parameter was defined under the same name in another unit as well, and the IDE didn't alert me, nor did the form load signal any issues during loading. Thus, the resulting code was completely wrong. The stack got shifted, and the event was returned to a garbage address. Originally, the parameter type was a class which was overridden in the other unit by a record. It was really fun trying to find the problem. -
Assign Null value to date mySQL
Attila Kovacs replied to Lainkes's topic in RTL and Delphi Object Pascal
FieldByName('STAT_CLOSED_DATE').Clear; -
wuppdi Welcome Page for Delphi 11 Alexandria?
Attila Kovacs replied to PeterPanettone's topic in Delphi IDE and APIs
It's possible that older IDE's work differently. You can make that button optional if you have some settings already. -
wuppdi Welcome Page for Delphi 11 Alexandria?
Attila Kovacs replied to PeterPanettone's topic in Delphi IDE and APIs
So, I opened 2 IDE's and started opening projects. They are written into the "...BDS\23.0\Closed Projects" key immediately, at opening a project. It would be also possible to load that key into the recent list, with an extra button. -
wuppdi Welcome Page for Delphi 11 Alexandria?
Attila Kovacs replied to PeterPanettone's topic in Delphi IDE and APIs
okay, where do you get the values? "Closed Projects" is written instantly. even on opening the project -
wuppdi Welcome Page for Delphi 11 Alexandria?
Attila Kovacs replied to PeterPanettone's topic in Delphi IDE and APIs
Some ppl. are running multiple IDE's parallel. -
wuppdi Welcome Page for Delphi 11 Alexandria?
Attila Kovacs replied to PeterPanettone's topic in Delphi IDE and APIs
I'd like to propose a function that allows refreshing the recent projects with a button from the registry, as I'm using multiple IDEs. It would be cool. -
Of course not, but you should execute a build and not compile it.
-
or opened in the IDE đ Build outside.
-
just rename that unit temprarily and do a build? huh?
-
Delphi and "Use only memory safe languages"
Attila Kovacs replied to Die HollÀnder's topic in General Help
I don't believe their concern is memory leaks when they recommend using memory-safe languages, so I'm unsure what the focus of this conversation is. -
Work for Embarcadero Sales!
Attila Kovacs replied to Dave Millington (personal)'s topic in Job Opportunities / Coder for Hire
-
Delphi and "Use only memory safe languages"
Attila Kovacs replied to Die HollÀnder's topic in General Help