Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
ВнизПолучение имени элемента перечисления Найти похожие ветки
← →
Hooch © (2004-03-23 16:30) [0]День добрый !
Для того что бы получить имя элемента перечислимого типа делаю так:
type
TMyType = (Element1, Element2);
procedure TMainForm.GetTypeName(Sender: TObject);
var
OrdTypeInfo: PTypeInfo;
begin
{1}OrdTypeInfo := PTypeInfo(TypeInfo(TMyType));
ShowMessage(GetEnumName(OrdTypeInfo, Ord(Element1))); // выводт строку "Element1"
end;
однако если TMyType объявить как
TMyType = (Element1=1, Element2=2) выше указанный код не работатет выдает ошибку на строке {1} что отсутствует информация о типе, как быть ? как получить имя элемента в таком случае ?
← →
MBo © (2004-03-23 16:50) [1]напиши точно, как объявляешь во втором случае.
← →
Hooch © (2004-03-24 08:46) [2]так и объявляю
type
TMyType = (Element1 = 1, Element2 = 2)
← →
MBo © (2004-03-24 09:05) [3]Хм...
Видимо, для Enumerated types with explicitly assigned ordinality действительно не создается информация о типе, если диапазон отличается от 0..N-1 (для TMyType = (Element1 = 0, Element2 = 1), фактически совпадающего с обхявлением по умолчанию - работает)
← →
oso (2004-03-24 10:03) [4]А если попробовать сделать переменную такого типа
паблишед-свойством объекта?
Если это возможно, то тайпинфо создастся.
Я сам не могу проверить, Д5 такого не поддерживает.
← →
Hooch © (2004-03-24 10:42) [5]ну и черт с ним с TMyType :-) всем спасибо !
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.045 c