Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
lazarus-project / usr / share / lazarus / 2.0.10 / components / rtticontrols
  ..
  fpdoc
  examples
  lib
  ttifloatspinedit.png
  ttiradiogroup.png
  ttifloatspinedit_200.png
  tticheckgroup_200.png
  ttigroupbox.png
  tticheckgroup_150.png
  ttiradiogroup_200.png
  ttipropertygrid_150.png
  ttimaskedit.png
  Makefile
  tticheckgroup.png
  rttictrls.pas
  ttimaskedit_150.png
  tticolorbutton.png
  baseicon.png
  tticalendar.png
  README.txt
  ttichecklistbox_150.png
  tmultipropertylink_200.png
  ttispinedit_150.png
  tticheckbox_200.png
  ttimemo.png
  ttitrackbar_150.png
  ttilabel_200.png
  tticalendar_150.png
  Makefile.compiled
  ttiedit_150.png
  tticalendar_200.png
  ttispinedit.png
  ttitrackbar_200.png
  tticolorbutton_150.png
  ttichecklistbox_200.png
  rttictrls.txt
  ttiimage.png
  tticolorbutton_200.png
  ttilabel_150.png
  tticombobox_200.png
  ttiprogressbar_150.png
  tticombobox_150.png
  ttilistbox_150.png
  tmultipropertylink.png
  ttilistbox_200.png
  ttilabel.png
  ttiimage_200.png
  rttigrids.pas
  ttimaskedit_200.png
  ttigrid_150.png
  tticombobox.png
  tticheckbox_150.png
  ttimemo_150.png
  ttilistbox.png
  ttimemo_200.png
  ttigrid.png
  Makefile.fpc
  ttibutton.png
  ttiprogressbar_200.png
  ttiedit.png
  ttigrid_200.png
  rttictrls.bat
  ttigroupbox_200.png
  ttipropertygrid.png
  tmultipropertylink_150.png
  rttictrls.res
  ttibutton_200.png
  ttiimage_150.png
  ttichecklistbox.png
  ttispinedit_200.png
  ttibutton_150.png
  ttifloatspinedit_150.png
  ttipropertygrid_200.png
  tticheckbox.png
  ttiedit_200.png
  runtimetypeinfocontrols.pas
  ttitrackbar.png
  ttiradiogroup_150.png
  ttigroupbox_150.png
  ttiprogressbar.png
  runtimetypeinfocontrols.lpk
Size: Mime:
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;