SetToString

Convert set to a string description

Declaration

Source position: typinfo.pp line 993

  function SetToString(TypeInfo: PTypeInfo; Value: LongInt; 
                      Brackets: Boolean) : string;
  function SetToString(PropInfo: PPropInfo; Value: LongInt; 
                      Brackets: Boolean) : string;
  function SetToString(PropInfo: PPropInfo; Value: LongInt) : string;
  function SetToString(TypeInfo: PTypeInfo; Value: Pointer; 
                      Brackets: Boolean) : string;
  function SetToString(PropInfo: PPropInfo; Value: Pointer; 
                      Brackets: Boolean) : string;

Description

SetToString takes an integer representation of a set (as received e.g. by GetOrdProp) and turns it into a string representing the elements in the set, based on the type information found in the PropInfo property information. By default, the string representation is not surrounded by square brackets. Setting the Brackets parameter to True will surround the string representation with brackets.

The function returns the string representation of the set.

Errors

No checking is done to see whether PropInfo points to valid property information.

See also

Name Description
GetEnumName Return name of enumeration constant.
GetEnumValue Get ordinal value for enumerated type by name
StringToSet Convert string description to a set.

Example

program example18;
{ This program demonstrates the SetToString function }
{$mode objfpc}
uses rttiobj,typinfo;
Var
  O : TMyTestObject;
  PI : PPropInfo;
  I : longint;
begin
  O:=TMyTestObject.Create;
  PI:=GetPropInfo(O,'SetField');
  O.SetField:=[mefirst,meSecond,meThird];
  I:=GetOrdProp(O,PI);
  Writeln('Set property to string : ');
  Writeln('Value  : ',SetToString(PI,I,False));
  O.SetField:=[mefirst,meSecond];
  I:=GetOrdProp(O,PI);
  Writeln('Value  : ',SetToString(PI,I,True));
  I:=StringToSet(PI,'mefirst');
  SetOrdProp(O,PI,I);
  I:=GetOrdProp(O,PI);
  Writeln('Value  : ',SetToString(PI,I,False));
  I:=StringToSet(PI,'[mesecond,methird]');
  SetOrdProp(O,PI,I);
  I:=GetOrdProp(O,PI);
  Writeln('Value  : ',SetToString(PI,I,True));
  O.Free;
end.