SafeGetEnumName a safer implementation of TypInfo.GetEnumName

I just had the need for a safer version of Delphi's GetEnumName, which checks whether the enum value passed to it is actually valid. This is what I came up with: [delphi] // P must point to the length field (that is the first byte) of a ShortString function AfterShortString(const P: Pointer): Pointer; inline; begin … Continue reading SafeGetEnumName a safer implementation of TypInfo.GetEnumName

dzBdsLauncher 1.0.13 released

I just released dzBdsLauncher 1.0.13. If it detects more than one possible Delphi version from the available project information it now checks which of them are installed if only one is installed, it starts this version. If more than one is installed, it asks the user.

An improved Abstract Error Handler for Delphi

NOTE: The original blog post was wrong in one point: The change happened in Delphi XE2, not 10.2. I have now updated this and also adapted the conditional compilation in u_dzAbstractHandler. I should also mention, that the code only works on Win32. Win64 and other platforms are not supported. But since that unit won't compile … Continue reading An improved Abstract Error Handler for Delphi

Switching GetIt to Online mode for an alternate Delphi configuration

GetIt is the package manager built into the Delphi IDE. It can be used in Online and Offline mode. If you installed Delphi from an ISO, GetIt was left in Offline mode. That has some drawbacks: GetIt cannot notify you about new updates or patches as they become available. The "Manage Features" functionality of the … Continue reading Switching GetIt to Online mode for an alternate Delphi configuration

Universal Debug Visualizer for Delphi

As mentioned in my previous post on dzDebugVisualizer I was thinking about writing a generalized debug visualizer which can be user-configured to register itself for any data type. Well, that debug visualizer now exists. It's part of dzDebugVisualizer and called "Universal Visualizer for Delphi". It has got a configuration page in the Tools -> Options … Continue reading Universal Debug Visualizer for Delphi

Simplified Debug Visualizers for all my TNullableTypes

After playing around with debug visualizers, I found that there is a very simple way to provide a visualiser for many record types: Just add a special method (I called it Dump) to those records that returns a string that you can then evaluate in the debugger and display in the debug windows. There are … Continue reading Simplified Debug Visualizers for all my TNullableTypes