lazarus/components/rtticontrols
vincents 8e6c6eb98d renamed ClimbRate to Increment (issue #1432)
git-svn-id: trunk@8147 -
2005-11-14 12:48:55 +00:00
..
examples cleanup example rtticontrols grid 2005-10-31 08:35:46 +00:00
lib
baseicon.png
Makefile updated dutch translation from Matthijs Willemstein 2005-09-25 07:57:47 +00:00
Makefile.fpc updated dutch translation from Matthijs Willemstein 2005-09-25 07:57:47 +00:00
README fixed typos 2004-07-23 17:15:03 +00:00
rttictrls.lrs renamed TSpinEdit to TFloatSpinEdit and added new TSpinEdit with integers 2005-09-22 08:59:42 +00:00
rttictrls.pas renamed ClimbRate to Increment (issue #1432) 2005-11-14 12:48:55 +00:00
rttigrids.pas disabled inline, added TTISpinEdit, added history skill to TTIComboBox 2005-10-31 19:17:48 +00:00
runtimetypeinfocontrols.lpk updated dutch translation from Matthijs Willemstein 2005-09-25 07:57:47 +00:00
runtimetypeinfocontrols.pas deactivated incomplete protected property check 2005-09-04 12:25:57 +00:00
tmultipropertylink.xpm implemented TMultiPropertyLink 2004-12-13 21:30:21 +00:00
ttibutton.xpm
tticalendar.xpm
tticheckbox.xpm
tticheckgroup.xpm
ttichecklistbox.xpm
tticolorbutton.xpm implemented TMultiPropertyLink 2004-12-13 21:30:21 +00:00
tticombobox.xpm
ttiedit.xpm
ttifloatspinedit.xpm renamed TSpinEdit to TFloatSpinEdit and added new TSpinEdit with integers 2005-09-22 08:59:42 +00:00
ttigrid.xpm registered andadded icon for TTIGrid 2005-01-09 14:11:03 +00:00
ttigroupbox.xpm
ttiimage.xpm
ttilabel.xpm
ttilistbox.xpm
ttimaskedit.xpm
ttimemo.xpm
ttiprogressbar.xpm implemented TTIProgressBar 2005-01-01 18:56:47 +00:00
ttipropertygrid.xpm
ttiradiogroup.xpm
ttispinedit.xpm
ttitrackbar.xpm

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.