It has been in the source code for quite a while and some few people and I have tested it, but I didn’t tell anybody else about it:
There is a new expert in GExperts for editing the current project’s unit search path. It looks like this:
It offers the same functionality as the Search Path enhancement option:
Multi line editing
Make relative / absolute for the currently selected line(s)
Prepend / Remove ..\ for the currently selected line(s)
Move current line up / down with the arrow buttons or Ctrl + up/down arrow keys.
Favourites menu for currently used paths
It also shares the Favourites with that option.
In addition it also offers a simpler way to select the target for which to edit the path. It lists all active targets of the current project on the left hand side and you can select them either with the mouse of with Alt + up/down arrow keys.
By default, the currently active target is preselected.
But I found that rather annoying, because I usually put most entries into the All configurations target, so I always had to first select that target in order to change the path. Since some of my testers still wanted the automatic selection I added a configuration option to select which target will be preselected.
For the default behaviour select <Current Config> or if you want a particular target select it from the list.
Note that I haven’t tested this for anything but Win32 and Win64 targets, but in theory it should also work for any other platform and even for custom configurations.
So, if you are now eager to test this new gem I may have to disappoint you: It only works for Delphi 2009 and later because the OTAPI did not offer access to the target list in earlier versions. On the bright side, the Project Options dialog for earlier versions opened so fast, it you could simply use that and switch to the Memo view.
For later Delphi versions, the menu entry is “Edit Path”:
My tests so far have shown no changes on how these work on my source code, but I usually don’t use any special Unicode characters and in particular no Russian characters.
So if you want to help out, whether or not you are using Unicode characters anywhere (for identifiers or within strings or comments) and especially Russian characters, please compile a new DLL from the current source code an test whether anything has been broken (or fixed).
I have just finished fixing all known bugs in the GExperts code formatter that were related to Generics. On top of that I fixed a few others.
I am sure there are still more though, but because I rarely use Generics I haven’t seen them yet. So I need your help: If you have a lot of source code with Generics, please compile a new DLL and try the formatter on that code. Report any bugs on SourceForge.
Prompted by a post on Delphi Praxis, I just added a new feature to the Expert Manager expert in GExperts (lots of experts here 😉 ): It can now change the order in which the experts are loaded into the IDE.
This may be important e.g. if you are using Andreas Hausladen’s Delphi Speed Up or IDE Fix Pack as those should be loaded before any other plugins.
Note that in order to these changes to have any effect, you need to save them! That’s no longer done automatically.
In this screen shot, I filtered for TWinControl and the expert found several matching entries, the two top ones in the unit Controls.
While this looks like a bug at first (indeed I have received a bug report for it) it is in fact a feature. There are actually two declarations of TWinControl in the unit Controls. The first is in line 212, which is a forward declaration like this:
TWinControl = class;
The other is in line 1243, which is the actual declaration of the class:
TWinControl = class(TControl)
// class declaration goes here
(Both line numbers are from Delphi 2007, they will vary in other Delphi versions.)
The expert lists them both and when the user clicks the “Open Unit” button (or presses Ctrl+O), it will then open that unit and place the cursor in the line of the declaration.
One word to the person who reported that bug: Please do not be offended that I blogged about it not being an actual bug but a feature. It is not meant to shame you. On the contrary, I am grateful that I receive good bug reports like this one. Please keep them coming!
COVID-19 is still going strong, even 2 years after it was first discovered. We’re on the Omicron variant now and nobody knows what new variants the near future may bring. I got my vaccination jabs in 2021-06-08 (AstraZeneca), 2021-07-17 (Biontech/Pfizer) and a booster 2021-12-09 (Moderna). As you can see, I survived all of them for at least a month 😉 Side effects were limited to some mild headache that lasted for about 24 hours.
On the bright side: I have been working from home basically through the whole pandemic and I like it (my wife does too). I even managed not to put on too much weight, but using an exercise bike for 30 to 45 minutes a day takes much more effort than simply cycling to work and back. And I miss flying to the south on vacation.
But I digress:
The new GExperts version still supports all Delphi versions back to Delphi 6 (with the notable exception of Delphi 8) and even the Delphi 11 version is no longer in Alpha state (but it’s still beta, there will be glitches!). Support for per monitor DPI awareness should now work (in Delphi 11, and definitely better than in the IDE itself).
There are even a few new features:
A new expert to edit the unit search path (only Delphi 2009 and later)
A per monitor DPI aware stand alone Grep (with a bugfix to save and restore the form position)
I have just finished making the stand alone GExperts Grep to really be stand alone, that is: It no longer needs the GExperts DLL but contains all the functionality in one executable. It has also been compiled with Delphi 11 Alexandria so it should be per monitor DPI aware.
Another feature is the ability to integrate itself into the Windows Explorer popup menu. Simply open the Options on the Grep Search dialog.
And set the appropriate check marks.
The first one adds an entry to the context menu of the tree view on the Windows Explorer’s left hand side tree view …
… and to the context menu of the background of the right hand side panel.
The second one adds an entry to the context menu of folder entries of the right hand side panel.
This release is part of the preparation for the GExperts 1.3.20 release which I plan to do within a few weeks. It will still be a Beta for Delphi 11 (but hey: No longer Alpha) but a regular release for all other Delphi versions.
Another episode from the series “GExperts features that I didn’t know about”:
It’s possible to drag an entry from the GExperts Grep to any other Windows program, e.g. to the Explorer, which will copy that file to the directory it was dragged to, or to an editor which will open that file.
I just now found out about this because I wondered why it was using Anders Melander’s DropSource unit (version 3.6 from 1999, maybe I should have a look if an update is possible).
Btw: I’m about to make the stand alone Grep tool a real stand alone executable that does not require the GExperts DLL (and its package dependencies). The reason is that I can’t find the cause for an Access Violation that happens in the Delphi 10.4 and 11 DLLs when opening the Grep window from an external program. It’s somewhere in the OnCreate event handler of TDockableForm, for which the source code is not available, so it’s difficult to debug.