Строковая нумерация
Автор: Peter Below
Просто объявите перечислимый тип, информацию о котором можно получить во
время выполнения программы, и создайте класс, который использует данный тип в
published-свойстве.
ClassInfo - метод класса, поэтому вы можете его использовать вместо
экземпляра объекта. Но прежде вам необходимо заиметь этот класс, иначе никакого
RTTI...
{$Z+}
type
TMyEnum = (one, two, three);
TEnumClass = class(TComponent)
private
FEnum: TMYEnum;
published
property Enum: TMyEnum read FEnum;
end;
procedure TForm1.BtnTestClick(Sender: TObject);
var
pOneName: PString;
PropInfo: PPropInfo;
begin
PropInfo := GetPropInfo(TEnumClass.ClassInfo, 'ENUM');
pOneName := GetEnumName(PropInfo^.PropType, Ord(One));
if pOneName <> nil then
ShowMessage(pOneName^)
else
ShowMessage('Nil!');
end;
|
Черная магия <G>!
|