GetSetProp function
Return the value of a set property.
Declaration
function GetSetProp(Instance: TObject; const PropName: string): stringDescription
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
Example: ex7
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.An experiment, built from development snapshots. Not the official Free Pascal or Lazarus documentation.
