Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Enumerated type


Автор: PILOT 22.7.2004, 22:33
Есть такая структура:
Код

type TEnum = (one, two, three);
var
EnVar: TEnum;


Хочется, чтобы пользователь с помощью ComboBox мог выбрать значение для переменной EnVar.
И еще хочется, считать в Item'ы ComboBox'а варианты TEnum.

Короче, вопрос: как организовать двунаправленное присвоение?

СУВ.

Автор: <Spawn> 23.7.2004, 04:59
PILOT Вот пример:

Код

uses ..., TypInfo;

type
 TEnumTest = (One, Two, Three);

var
 Form1: TForm1;

implementation

{$R *.dfm}

(*Перевод выбраного элемента ComboBox-а в элемента типа TEnumTest*)
procedure TForm1.Button1Click(Sender: TObject);
var
 EnumTest: TEnumTest;
begin
 if ComboBox1.ItemIndex = -1 then
   Exit;
 EnumTest := TEnumTest(GetEnumValue(TypeInfo(TEnumTest), ComboBox1.Text));
 ShowMessage(Format('Выбрано - %s', [GetEnumName(TypeInfo(TEnumTest), integer(EnumTest))]));
end;

procedure TForm1.FormCreate(Sender: TObject);
var
 i: integer;
begin
 for i := 0 to 2 do
   ComboBox1.Items.Add(GetEnumName(TypeInfo(TEnumTest), i));
end;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)