Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.024 c
4-1135073467
davinchi
2005-12-20 13:11
2006.03.12
Как дождаться окончания загрузки Win98


2-1140590291
nap<>
2006-02-22 09:38
2006.03.12
Процессы


15-1140180100
Ajax
2006-02-17 15:41
2006.03.12
Работа с базами электронных словарей


15-1140013061
Yeg
2006-02-15 17:17
2006.03.12
Чему равен объём одного моля...


8-1128001314
X-Disa
2005-09-29 17:41
2006.03.12
Нормальный звук через системный динамик




   Наверх