FindPropInfo
Return property information by property name.
Declaration
Source position: typinfo.pp line 860
  function FindPropInfo(Instance: TObject; const PropName: string)
                        : PPropInfo;
  function FindPropInfo(Instance: TObject; const PropName: string; 
                       AKinds: TTypeKinds) : PPropInfo;
  function FindPropInfo(AClass: TClass; const PropName: string)
                        : PPropInfo;
  function FindPropInfo(AClass: TClass; const PropName: string; 
                       AKinds: TTypeKinds) : PPropInfo;
Description
FindPropInfo examines the published property information of a class and returns a pointer to the property information for property PropName. The class to be examined can be specified in one of two ways:
- AClass
- a class pointer.
- Instance
- an instance of the class to be investigated.
If the property does not exist, a EPropertyError exception will be raised. The GetPropInfo function has the same function as the FindPropInfo function, but returns Nil if the property does not exist.
Errors
Specifying an invalid property name in PropName will result in an EPropertyError exception.
See also
| Name | Description | 
|---|---|
| GetPropInfo | Return property type information, by property name. | 
| GetPropInfos | Return a list of published properties. | 
| GetPropList | Return a list of a certain type of published properties. | 
Example
Program example13;
{ This program demonstrates the FindPropInfo function }
{$mode objfpc}
uses
  rttiobj,typinfo,sysutils;
Var
  O : TMyTestObject;
  PT : PTypeData;
  PI : PPropInfo;
  I,J : Longint;
  PP : PPropList;
  prI : PPropInfo;
begin
  O:=TMyTestObject.Create;
  PI:=FindPropInfo(O,'BooleanField');
  Writeln('FindPropInfo(Instance,BooleanField) : ',PI^.Name);
  PI:=FindPropInfo(O.ClassType,'ByteField');
  Writeln('FindPropInfo(Class,ByteField)       : ',PI^.Name);
  Write  ('FindPropInfo(Class,NonExistingProp) : ');
  Try
    PI:=FindPropInfo(O,'NonExistingProp');
  except
    On E: Exception do
      Writeln('Caught exception "',E.ClassName,'" with message : ',E.Message);
  end;
  O.Free;
end.