lazarus/components/rtticontrols
2023-12-17 11:23:58 +01:00
..
examples rtticontrols: updated example lpi 2017-05-08 11:11:30 +00:00
fpdoc Docs: RttiControls/rttictrls. Fixes invalid links to inherited topics. 2023-03-27 19:52:40 +01:00
baseicon.png
images-copyright.txt Components: Add copyright notes to all folders to which Roland Hahn has contributed images. 2021-02-24 22:17:51 +00:00
Makefile set fixes version 3.0 2023-12-17 11:23:58 +01:00
Makefile.compiled set fixes version to 3.0RC1 2023-06-25 17:59:59 +02:00
Makefile.fpc updated makefiles 2023-06-30 21:02:31 +02:00
README.txt
rttictrls.bat rtti controls: use FPC resources for component images 2013-10-04 15:27:31 +00:00
rttictrls.pas RTTIControls: Update property filters with types from FPC 3.2.2, including UnicodeString. Issue #32545. 2023-06-20 10:13:51 +03:00
rttictrls.res RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
rttictrls.txt RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
rttigrids.pas Reduce compiler warnings. 2023-07-03 16:39:15 +03:00
runtimetypeinfocontrols.lpk RttiControls: Modifies the .lpk file to include the path to the documentation directory. Enables CodeHelp in the IDE. Patch by Don Siders. Issue #40113. 2023-02-07 15:49:00 +01:00
runtimetypeinfocontrols.pas components: less hints 2016-03-01 15:25:02 +00:00
tmultipropertylink_150.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
tmultipropertylink_200.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
tmultipropertylink.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttibutton_150.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttibutton_200.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttibutton.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
tticalendar_150.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
tticalendar_200.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
tticalendar.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
tticheckbox_150.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
tticheckbox_200.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
tticheckbox.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
tticheckgroup_150.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
tticheckgroup_200.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
tticheckgroup.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttichecklistbox_150.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttichecklistbox_200.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttichecklistbox.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
tticolorbutton_150.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
tticolorbutton_200.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
tticolorbutton.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
tticombobox_150.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
tticombobox_200.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
tticombobox.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttiedit_150.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttiedit_200.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttiedit.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttifloatspinedit_150.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttifloatspinedit_200.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttifloatspinedit.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttigrid_150.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttigrid_200.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttigrid.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttigroupbox_150.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttigroupbox_200.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttigroupbox.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttiimage_150.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttiimage_200.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttiimage.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttilabel_150.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttilabel_200.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttilabel.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttilistbox_150.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttilistbox_200.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttilistbox.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttimaskedit_150.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttimaskedit_200.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttimaskedit.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttimemo_150.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttimemo_200.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttimemo.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttiprogressbar_150.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttiprogressbar_200.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttiprogressbar.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttipropertygrid_150.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttipropertygrid_200.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttipropertygrid.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttiradiogroup_150.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttiradiogroup_200.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttiradiogroup.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttispinedit_150.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttispinedit_200.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttispinedit.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttitrackbar_150.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttitrackbar_200.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00
ttitrackbar.png RTTIControls: Add HighRes palette icons by Roland Hahn. 2017-12-12 13:08:46 +00:00

RTTI Controls for LCL


What is RTTI?

RTTI stands for the FreePascal Run Time Type Information.
The RTTI controls can be connected to published properties of TPersistant
objects (e.g. any LCL or FCL component). For example you can connect a
TTICheckBox to the Visible property of a TButton.
The IDE uses the RTTI for the Object Inspector and defines a lot of property
editors. The RTTI controls use these property editors, so they can edit anything
the Object Inspector can edit. But contrary to the Inspector the RTTI controls
are not limited to TEdit and TComboBox.


Usage:

Install the package runtimetypeinfocontrols.lpk in the Lazarus IDE. The new
controls will be installed in the new group "RTTI".

Each RTTI control has a property "Link".
There you can set the TIObject and the TIPropertyName.
For example:
 TIEdit.Link.TIObject:=Button1;
 TIEdit.Link.TIPropertyName:="Visible";
Or shorter:
 TIEdit.Link.SetObjectAndProperty(Button1,"Visible");
 
Make sure to unlink before you destroy the connected TIObject:
 TIEdit.Link.TObject:=nil;
Otherwise you can get access violations, when the RTTI control tries to access
it. For TComponent descendents like TButton the unlinking is done automatically.
 

Updating:

The RTTI has no callbacks, so if a property changes, the RTTI control does not
recognize this. You can either call
  TIEdit.Link.LoadFromProperty;
or you can set ploReadOnIdle in TIEdit.Link.Options:
  TIEdit.Link.Options:=TIEdit.Link.Options+[ploReadOnIdle];
Then the RTTI control will call LoadFromProperty everytime the Application gets
idle.

BEWARE:
The on idle update will not load the property, if the control is focused.
You can use this:
    // update focused control
    GetPropertyLinkOfComponent(ActiveControl).LoadFromProperty;