A set of simple IDE tools that I find useful, making my workflow faster and easier. I'll add more as I develop new ideas, and feel free to suggest some as well!
- Debugger visualizers
- KeyBindings
- FileOpener and SendToIDE
- Update Subscription Fader
- Common
- How to use
Displays a GUID value in the debugger as the actual GUID representation, instead of a series of integers. This way, you don't need to open the Evaluate window and call AGUID.ToString just to view or copy the GUID.
Before:
After:
Note: The Cpp visualizer has not yet been implemented.
Disables the annoying Ctrl+Enter shortcut which triggers the 'Open file' dialog by adding another shortcut that handles the keybinding execution but does nothing.
Embarcadero added the 'Reload LSP Server' menu item to the Tools section, but didn't assign any shortcut. Since the menu item is added dynamically, it is not accessible through the 'GExperts IDE Menu Shortcuts', so I decided to add the shortcut manually.
Default shortcut: Alt+Shift+W
Reopens the last closed editor tab by digging through the File > Open Recent menu items (those prefixed with alphabet letters).
Default shortcut: Ctrl+Shift+T
This implementation consists of two parts: a receiver (FileOpener) and a sender (SendToIDE).
The receiver is installed in the IDE and listens for Windows messages with the WM_COPYDATA code, expecting a predefined record that contains the file name, line, and column.
The sender is a standalone console application that sends the above Windows message to the RAD Studio instance with the populated data. It accepts the following arguments:
Zx.OpenInIDE.exe <File> [Line] [Column] [RAD Studio Path]
- File: required, full file path.
- Line: optional, the line number the editor should jump to.
- Column: optional, character the editor should jump to in the line.
- RAD Studio path: optional, full path to RAD Studio. The default is the value of the App key in the registry path:
HKEY_CURRENT_USER\Software\Embarcadero\BDS\23.0. This is also useful if you don't use the plain RAD Studio application, but rather other variations, such as Delphi 12 (DPI Unaware). Shortcuts (.lnk) are also supported. If a bds.exe instance is already running, this argument is ignored.
The reason I made this extension is that RAD Studio does not accept arguments for opening a file at a certain line number (unlike VSCode).
As an example, now I can define RAD Studio as a Custom editor in dnGrep, call Zx.OpenInIDE.exe with file, number, and column arguments, and it will open RAD Studio the way it should (+ very fast).
From a recent Delphi version (most likely 12+), the "Update Subscription: Only X Days Remaining" started showing up at the center of the Title Bar. It wouldn't be such a big issue if it weren't for the eye-stabbing red rectangle that spans almost across the entire title bar (not to mention the overlapping with the Layout Selector combobox):
Until the Embarcadero team updates it, I decided to implement a small hack that removes the red rectangle. Unfortunately, the code they wrote for drawing the red rectangle is in the OnPaint event from the TTitleBarPanel, which means it is not a simple solution like setting a Control.Visible property to False. Instead, I had to override the event (assign a new one in which I call the previously assigned one) and replace the drawn red color on the canvas with the true color of the background panel. Here's how it looks like with the fader installed:
![]()
A set of utilities used by the tools. Currently contains only the TZxIDEMessages.
I designed the tools to be as independent as possible, so you can easily add them to your packages and install them manually. However, if you'd prefer a quicker option, there's also the Zx.IDETools.dproj package, which installs all the tools simultaneously. If you want to disable some tool or assign a different shortcut, you should be able to do so in a single unit, Zx.IT.Reg.pas.

