Delphi/CB
● Greatis ● Security ● AppDatabase ● Utilities ● Android ● .NET ● just4fun
Delphi / C++ Builder
Components, utilities and tips for Delphi and C++ Builder developers
Property Interface
Homepage
Properties and methods
Download
Order
Features
Simple-in-use object interface to the complicated RTTI
Only native VCL/FMX solutions
Related components
Object Inspector
Runtime Fusion

Other Delphi components
.Net components

Free Delphi Software
Omid Motahed's Free Delphi Software
Special offer!
Advertisement
Follow us
LinkedIn Twitter Facebook

Property Interface

Simple-in-use way to RTTI for VCL and FMX

For all versions of Delphi and C++ Builder from 3 to 10.1 Berlin and for all versions of Windows from XP to 10


Property Interface (TPropertyInterface component) allows you to access any property and event of any object at runtime by it's name. The complete list of properties and events is also availabe in the indexed list. Each property is present by special TProperty class that provides complete information about the property including value, type, access methods addresses, minimal and maximal values, enumeration lists, and much more. The complete set of value access methods are available too: AsFloat, AsMethod, AsInteger, AsChar, AsString and so on.

Just drop TPropertyInterface component onto the form, assign Root and Instance properties and access any value of any property at runtime with very simple code:

uses ..., PropList, PropIntf;
...
var
  P: TProperty;
begin
  P:=cmpPropertyInterface.FindProperty('Caption');
  if Assigned(P) then P.AsString:='New Caption';
  P:=cmpPropertyInterface.FindProperty('Font.Style.fsBold');
  if Assigned(P) then P.AsBoolean:=True;
end;
The indexed list of all the properties allows to do some very interesting tricks. For example, the following code makes all the string properties of all components on the form upper case:
uses ..., PropList, PropIntf;
...
var
  C,P: Integer;
  Prop: TProperty;
begin
  // components loop
  for C:=0 to Pred(ComponentCount) do
    with PropertyInterface do
    begin
      Instance:=Self.Components[C];
      // component's properties loop
      for P:=0 to Pred(Count) do
      begin
        Prop:=Properties[P];
        if Assigned(Prop) then
          with Prop do
            if TypeKind in [tkString,tkLString,tkWString,tkUString] then 
              // this is a string type property, we must process it
              AsString:=UpperCase(AsString);
      end;
    end;
end;
Property Interface suite contains special demo projects for VCL and FMX that demonstrate all the features of TPropertyInterface component and TProperty class:

Property Interface Demo


Property Interface can be order separately or as a part of Object Inspector


Download free demo, order full source code right now!


Greatis Software
eXTReMe Tracker