Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.12;
Скачать: CL | DM;

Вниз

как элемент пречисления записать в строку?   Найти похожие ветки 

 
De   (2006-02-26 16:01) [0]

eEnum = (e_A, e_B, e_C);
...
s : string;
...
s := InToStr(e_B); - ?

Как это сделать?


 
palva ©   (2006-02-26 16:05) [1]

Если для числового значения, то
s := IntToStr(Ord(e_B));
Если вы хотите вытащить сам идентификатор, то никак. Эти идентификаторы в откомпилированной программе не сохраняются.


 
unknown ©   (2006-02-26 16:05) [2]

case Enum of
 e_A:s:="e_A";
 e_B:s:="e_B";
 e_C:s:="e_C";
end;


 
Сергей М. ©   (2006-02-26 16:08) [3]


> s := InToStr(e_B); - ?
> Как это сделать?


Кверху.

s := IntToStr(Integer(e_B));


 
begin...end ©   (2006-02-26 16:14) [4]

> palva ©   (26.02.06 16:05) [1]
> Эти идентификаторы в откомпилированной программе не сохраняются.

Ой.


 
MBo ©   (2006-02-26 16:29) [5]

uses typinfo
GetEnumName


 
Джо ©   (2006-02-26 16:35) [6]

> [5] MBo ©   (26.02.06 16:29)
> uses typinfo
> GetEnumName

При соблюдении следующего: значение перечисления должно храниться в published-свойстве класса с включенной генерацией run-time type information ($M+) или его наследника.

Иначе, см.:
>palva ©  
> Эти идентификаторы в откомпилированной программе не сохраняются.


 
begin...end ©   (2006-02-26 16:39) [7]

> Джо ©   (26.02.06 16:35) [6]

> При соблюдении следующего: значение перечисления должно
> храниться в published-свойстве класса с включенной генерацией
> run-time type information ($M+) или его наследника.

Ой.


 
Джо ©   (2006-02-26 16:40) [8]

> [7] begin...end ©   (26.02.06 16:39)
> Ой.

Вы хотите о чем-то поговорить? Говорите.


 
begin...end ©   (2006-02-26 16:44) [9]

> Джо ©   (26.02.06 16:40) [8]

Спасибо.

type
 TMyEnum = (E1, E2);

var
 I: Integer;
 Info: PTypeInfo;
begin
 Info := PTypeInfo(TypeInfo(TMyEnum));
 with GetTypeData(Info)^ do
   for I := MinValue to MaxValue do
     ShowMessage(GetEnumName(Info, I))
end


 
Джо ©   (2006-02-26 16:46) [10]

> [6] Джо ©   (26.02.06 16:35)

Ответ [5] MBo прочитал как GetEnumProp, отсюда и мой ответ по поводу свойств. О GetEnumName не знал, спасибо MBo.


 
Джо ©   (2006-02-26 16:48) [11]

Да, действительно, вот так работает:
ShowMessage(GetEnumName(TypeInfo (eEnum),Integer(MyEnum)));


 
Джо ©   (2006-02-26 16:51) [12]

> [9] begin...end ©   (26.02.06 16:44)

И вам спасибо.


 
palva ©   (2006-02-26 16:57) [13]

Кто бы мог подумать!



Страницы: 1 вся ветка

Текущий архив: 2006.03.12;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.044 c
2-1140430374
reboot
2006-02-20 13:12
2006.03.12
компоненты vcl


15-1140500963
tsa
2006-02-21 08:49
2006.03.12
Соли нет!


2-1140608067
sydenis
2006-02-22 14:34
2006.03.12
что-то ibx не рулит


2-1140900557
Adios
2006-02-25 23:49
2006.03.12
Из ListBox в Image


3-1137372262
DimonS
2006-01-16 03:44
2006.03.12
Access +SQL