The Delphi IDE Explorer lets you browse all VCL and FMX components, forms, data modules, properties, events, and class hierarchies within the running Delphi IDE. Until now, this was purely read-only. The latest version adds the ability to edit published properties at runtime by double-clicking them in the Properties list.
Supported property types
The edit dialog adapts to the property’s type kind:
- Simple types (strings, integers, floats, characters) – a text field with input
validation. - Enumerations and booleans – a dropdown listing all valid values.
- TColor – a text field accepting Delphi color constants (e.g.
clBtnFace) with a button to open the standard color picker. - Sets – a checklist box for toggling individual elements.
- TShortCut – text editing via
TextToShortCut/ShortCutToText. - TCursor – a dropdown with standard cursor names.
- TFont – opens the standard Windows font dialog.
- TStrings – a memo field for multiline content.
- TMargins / TPadding – four fields for Left, Top, Right, and Bottom. This works for any class that publishes these four integer properties, not just
TMarginsandTPadding.
Properties without a setter (SetProc = nil) are displayed but cannot be modified – the OK button is disabled.
Implementation notes
The implementation uses classic RTTI via the TypInfo unit, so it works with Delphi versions back to Delphi 6. The PPropInfo pointer for each property is stored in the ListView item’s Data field. Since RTTI data is static, these pointers remain valid for the lifetime of the component.
For class-type properties (TFont, TStrings, TMargins), the editor modifies the existing object’s sub-properties rather than assigning a new object instance. This means they work even for read-only properties – the property object itself is not replaced, only its contents change.
All SetXxxProp calls are wrapped in try/except, and input is validated before applying. A Reset button captures the original value when the dialog opens and can restore it.
Caveats
Changing properties of the running IDE has immediate effect and can cause instability. There is no global undo beyond the Reset button in the edit dialog. This is useful for experimentation and debugging, but save your work first.
There is no installer for this plugin. Just get the source code from Sourceforge, load the package for your Delphi version, compile and install it.
Discussion about this in the corresponding post in the international Delphi Praxis forum.