Главная страница
    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.014 c
2-1140287534
Vitaly Sa
2006-02-18 21:32
2006.03.12
Чтение мапа сервиса


15-1139819794
msguns
2006-02-13 11:36
2006.03.12
Веб-дизайн. Инструмент.


2-1140561855
Начинающий__
2006-02-22 01:44
2006.03.12
Form.BorderStyle = bsSizeable, не показывать иконку


2-1140671561
dreamse
2006-02-23 08:12
2006.03.12
Непонятки с консолью


15-1139844184
Yeg
2006-02-13 18:23
2006.03.12
algolist.manual.ru, только по Pascal





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