Форум: "Начинающим";
Текущий архив: 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