Как использовать GetSetProp и SetSetProp из модуля TypInfo - PullRequest
1 голос
/ 24 января 2010

У меня есть набор значений перечисления, которые мне нужно преобразовать в текст, а затем обратно в набор.

Я полагаю, что GetSetProp и SetSetProp из блока TypInfo позволят это сделать, но я понятия не имею, как заставить его работать Любая идея о том, как я могу использовать GetSetProp и SetSetProp для достижения этой цели?

type
  TSomething = (sOne, sTwo, sThree, sFour, s Five);
  TSomethings = set of TSomething;

var
  Something: TSomethings;
  s: string;
...
  Something := [sOne, sThree];

  s := GetSetProp(????);

  Something := [];
  // then use SetSetProp to set Something back to [sOne, sThree]
  Something := ????

Ответы [ 2 ]

4 голосов
/ 24 января 2010

Этот отличный пост SetToString, StringToSet tondrej решает вашу проблему.

2 голосов
/ 24 января 2010

Как может привести имя метода: это работает только для опубликованных свойств!

type
  TSomething = (sOne, sTwo, sThree, sFour, sFive);
  TSomethings = set of TSomething;
  TSomeClass = class
  private
    FSomeThing: TSomethings;
  public
  published
    property SomeThing: TSomethings read FSomeThing write FSomeThing;
  end;

...
var
  SomeClass: TSomeClass;
  s: string;
begin
  SomeClass := TSomeClass.Create;
  try
    SomeClass.Something := [sOne, sThree];
    s := GetSetProp(SomeClass, 'Something');
    ...
  finally
    SomeClass.Free;
  end;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...