GetSetProp

Return the value of a set property.

Declaration

Source position: typinfo.pp line 899

  function GetSetProp(Instance: TObject; const PropName: string) : string;
  function GetSetProp(Instance: TObject; const PropName: string; 
                     Brackets: Boolean) : string;
  function GetSetProp(Instance: TObject; const PropInfo: PPropInfo; 
                     Brackets: Boolean) : string;

Description

GetSetProp returns the contents of a set property as a string. The property to be returned can be specified by it's name in PropName or by its property information in PropInfo.

The returned set is a string representation of the elements in the set as returned by SetToString . The Brackets option can be used to enclose the string representation in square brackets.

Errors

No checking is done whether Instance is non-nil, or whether PropInfo describes a valid ordinal property of Instance Specifying an invalid property name in PropName will result in an EPropertyError exception.

See also

Name Description
GetFloatProp Return value of floating point property
GetInt64Prop return value of an Int64 property
GetMethodProp Return value of a method property
GetStrProp Return the value of a string property.
SetSetProp Set value of set-typed property.

Example

program example7;
{ This program demonstrates the GetSetProp function }
{$mode objfpc}
uses rttiobj,typinfo;
Var
  O : TMyTestObject;
  PI : PPropInfo;
Function SetAsString (ASet : TMyEnums) : String;
Var
  i : TmyEnum;
begin
  result:='';
  For i:=mefirst to methird do
    If i in ASet then
      begin
      If (Result<>'') then
        Result:=Result+',';
      Result:=Result+MyEnumNames[i];
      end;
end;
Var
  S : TMyEnums;
begin
  O:=TMyTestObject.Create;
  O.SetField:=[mefirst,meSecond,meThird];
  Writeln('Set property    : ');
  Writeln('Value                        : ',SetAsString(O.SetField));
  Writeln('Ord(Value)                   : ',Byte(O.SetField));
  Writeln('Get (name)                   : ',GetSetProp(O,'SetField'));
  PI:=GetPropInfo(O,'SetField');
  Writeln('Get (propinfo)               : ',GetSetProp(O,PI,false));
  S:=[meFirst,meThird];
  SetOrdProp(O,'SetField',Byte(S));
  Write('Set (name,[mefirst,methird]) : ');
  Writeln(SetAsString(O.SetField));
  S:=[meSecond];
  SetOrdProp(O,PI,Byte(S));
  Write('Set (propinfo,[meSecond])    : ');
  Writeln(SetAsString(O.SetField));
  O.Free;
end.