Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.012 c
2-1140578291
Непонял
2006-02-22 06:18
2006.03.12
MDI


4-1135072687
Volf_555
2005-12-20 12:58
2006.03.12
Как вывести на экран все иконки из dll-файла?


2-1140607527
Клон
2006-02-22 14:25
2006.03.12
Charset в Idmessage


15-1140174363
Keyser
2006-02-17 14:06
2006.03.12
Программная нсталяция Firebird


1-1139325958
t0mk4
2006-02-07 18:25
2006.03.12
TabControl1





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский