-
Content Count
2839 -
Joined
-
Last visited
-
Days Won
168
Everything posted by Uwe Raabe
-
You may have different installation folders - perhaps caused by an admin installation followed by a user installation.
-
You mean "This company must earn money!"? Indeed, that way of thinking is somewhat spreading out during the last few years...
-
Adding these additional units is something the IDE does by itself during Save when related components are placed on the form. Unfortunately the IDE is not able to resolve the conditionals. That is one of the reasons why I rate Conditional Uses Clause Considered Harmful, AFAIK, there is no working solution to prohibit this behavior of the IDE. All approaches I am aware of have glitches in some scenarios.
-
IIRC, they want to keep the CE always one major version behind the recent one.
-
Interesting way to copy dynamic arrays.
Uwe Raabe replied to pyscripter's topic in RTL and Delphi Object Pascal
The assignment just sets the pointer and increments the reference count. -
Move current entity to another unit?
Uwe Raabe replied to PeterPanettone's topic in MMX Code Explorer
Actually there already are several MMX related popup menus, one being a global one reachable with Shift-Ctrl-Alt-X. So it is not adding another entry to them, but rather the task to select an existing unit or create a new one (which might be another decision point in between) and filling out the necessary parts (select a folder, enter a name), which are already available and working (almost) perfectly inside the IDE. What bothers me that the net gain is one keystroke at best - if at all. I would give the uses clause thing much higher priority due to the real benefit it brings. -
Move current entity to another unit?
Uwe Raabe replied to PeterPanettone's topic in MMX Code Explorer
Despite of 2), which would even have benefits for the Cut/Paste approach (noted), I cannot see any advantage in 1). The effort to select an existing unit or create a new one is pretty much the same as opening that unit or create it with the build-in possibilities. The difference boils down to have a new functionality for this new MOVE operation, which would most likely lack a standard shortcut (which are pretty sparse in a current IDE) and thus had to be triggered from a context menu (two clicks). IMHO it would end up in a new feature needing significant effort to implement while of vanishing benefit for most users. -
Move current entity to another unit?
Uwe Raabe replied to PeterPanettone's topic in MMX Code Explorer
How would you like to have Ctrl-X - <select another tab> - Ctrl-V more comfortable? -
Announce: $150 discount on Rubicon Pro ( optimized full text search component suite for Delphi )
Uwe Raabe replied to Ann Lynnworth's topic in Delphi Third-Party
I am quite confident that isn't the case here. Otherwise they had found a way to send sophisticated personal messages to users of this forum that actually make sense. -
You cannot. The community version needs a new key when installed more than once (deleting a license doesn't help). The problem you will encounter next is that you cannot get another 10.3 key anymore - only for 10.4.
- 17 replies
-
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?