Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.11;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.031 c
4-1079945854
Erik
2004-03-22 11:57
2004.04.11
Открытие родительского процеса.


14-1082013546
McSimm
2004-04-15 11:19
2004.04.11
Я приношу извинения всем посетителям сайта


1-1080128559
_Guest_
2004-03-24 14:42
2004.04.11
где и как отследить смену раскладки клавиатуры?


7-1079093913
Arm79
2004-03-12 15:18
2004.04.11
Перехват системных комбинаций клавиш для скринсайвера


8-1070934935
maxfiles
2003-12-09 04:55
2004.04.11
Как можно определить длительность qt и mov ролика?