Главная страница
    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.011 c
15-1140415377
Ega23
2006-02-20 09:02
2006.03.12
С Днём рождения! 20 февраля


15-1139824556
Гарри Поттер
2006-02-13 12:55
2006.03.12
VPN+Outlook+Exchange


2-1140418343
unit
2006-02-20 09:52
2006.03.12
Базы данных


15-1140181758
oldman
2006-02-17 16:09
2006.03.12
Умер Андрей Петров...


9-1118245719
Ford
2005-06-08 19:48
2006.03.12
созданние Города





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский