-
Content Count
2750 -
Joined
-
Last visited
-
Days Won
162
Everything posted by Uwe Raabe
-
inherited dynamic message handlers
Uwe Raabe replied to A.M. Hoornweg's topic in RTL and Delphi Object Pascal
The docs are pretty clear about it (Message Methods) : -
Create handlers for the DB fields OnGetText and OnSetText events and do the conversion inside. Note that the DBComboBox Items property still needs the list of valid text entries to select from.
-
Hi Ian, actually both. The Programs folder contains all the files needed for the installation, while the other one stores dynamic files like usage, history and so on. There is also a third folder under the Roaming profile where some other supplementary files are stored.
-
Possible to "extend" or "inherit" an existing class/record helper?
Uwe Raabe replied to wuwuxin's topic in Algorithms, Data Structures and Class Design
While the above is valid for record helpers, it is indeed possible to extend class helpers. (It es even documented: https://docwiki.embarcadero.com/RADStudio/Alexandria/en/Class_and_Record_Helpers_(Delphi)#Helper_Syntax) In this example we extend the existing class helper TRESTRequestParameterHelper from REST.Client.pas (Delphi 11) with another method without hiding the ContentType member of TRESTRequestParameterHelper. type TMyRESTRequestParameterHelper = class helper (TRESTRequestParameterHelper) for TRESTRequestParameter procedure MyTest; end; -
Getting IDE plugins support High DPI is not that difficult in the first place, just tedious. The tricky part is to keep it compatible with older Delphi versions. Most likely Embarcadero will not even consider the latter, so the effort stays manageable.
-
Delphi’s TZipFile working on a stream
Uwe Raabe replied to dummzeuch's topic in Tips / Blogs / Tutorials / Videos
TZipFile.Filenames creates the result array each time on the fly. Caching that in a local variable should speed it up a bit. As an alternative you can use an array iterator: for var filename in zip.FileNames do begin vZipContents.Add(fileName); end; -
Even if you know that there are 8 threads possible to run in parallel on your machine, it isn't guaranteed that this will actually happen. There can be other tasks from other processes or the OS itself occupying some CPUs which leaves you in the same problem as having more tasks than there are CPUs.
-
Simply remove it from the uses, wait for the compiler to complain and look which unit contains that symbol now. It probably can found in the ToolsAPI source folder.
-
What baffles me is the appearance of designide in the used packages list. That one is supposed to be used in design time packages only.
-
REST-JSon-Helpers unit got an update. The unit contains the sources described in my articles Serializing Objects with TJson and Serializing Generic Object Lists with TJson. While the previous version as described in the article was based on declaring a new interceptor class given to the attribute, the current implementation doesn't need that interceptor, but derives from the (now generic) attribute. The new implementation allows to decorate the derived list class directly removing the need to decorate each field with that attribute. In addition the new approach is able to convert a list instance directly into a Json array with out the need of a wrapper class. Also supported is reverting a Json array into a TArray<T>, which can easily be added to a corresponding list.
-
Showing an image inside the hint. For this screenshot I set the buttons Hint property to "My Title|Hello World|0":
-
Not when you follow my hint with the TDatamodule. Well, tastes may be different. I prefer the use of an image list and the fact that it is probably better supported in newer Delphi versions than the Raize one.
-
Delete a ListView Item together with its livebinding DB record.
Uwe Raabe replied to Tang's topic in FMX
Wipe Left to Delete is a standard functionality in FMX-TListView. -
TRzBallonHints acts application wide, while TBallonHint can be tied up to the form as well as down to individual components. Placed onto a TDatamodule it can server multiple forms.
-
Did you connect the TBallonHint component to the CustomHint property of the form/control?
-
Are you talking about TRzBallonHints? I never heard of RzButtonHints. If so, they are working here. So may be something special on your side. Note that Delphi provides its own TBalloonHint component for a couple of versions.
-
I wrote an article about Async Tasks in VCL Projects
-
Async Tasks in VCL Projects
Uwe Raabe replied to Uwe Raabe's topic in Tips / Blogs / Tutorials / Videos
Fixed. Also the link! -
Async Tasks in VCL Projects
Uwe Raabe replied to Uwe Raabe's topic in Tips / Blogs / Tutorials / Videos
Sources also available on https://github.com/UweRaabe/AsyncTasksInVclProjects -
Setting AutoSize of a panel to true makes the panel adjust its size so that all contained controls are still visible, but nothing more. It takes AdjustWithMargins of the controls into account. The panel Align value takes precedence over the AutoSize.
-
And to what controls are you expecting the panel to adjust its size? Or more general, what do you think what AutoSize does?
-
Works perfectly with a simple test program. Probably some settings on your side. Can you attach a small example so that we can see a bit more?
-
What is ProDellInterface27 in the Delphi IDE???
Uwe Raabe replied to PeterPanettone's topic in Delphi IDE and APIs
Probably this one: https://www.prodelphi.de/indexpd.html -
Asynchronous Programming Library
Uwe Raabe replied to pyscripter's topic in RTL and Delphi Object Pascal
OK, it may still be true that for today no one else actually knows how to use it properly. -
Asynchronous Programming Library
Uwe Raabe replied to pyscripter's topic in RTL and Delphi Object Pascal
Ahem, AFAIK it was in fact Allen Bauer who laid out the architecture of the APL - if not actually wrote the whole stuff himself: A Sink Programming More A Sink Kronos programming Value Capture vs. Variable Capture