Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

фсё то же перечисление [D5, WinXP]


anbezr ©   (2003-01-30 14:35:00) 

Привет!
мой тип описан как:

type TMyType = (mtFirst, mtSecond, mtThird);

могу ли я узнать сколько элементов находится в таком перечислении и как они названы - т.е. получить константы mtXxx в текстовом виде.
PS
sizeof возвращает 1 (чего и след ожидать)
Length говорит - неправильный тип.


Бурундук   (2003-01-30 16:19:00) [1]

typinfo.pas


Демонов Е.В.   (2003-01-30 15:23:00) [2]

2han_malign © (30.01.03 14:41)
>>RTTI не используется в простых типах, только в классах

НУ ты выдал


anbezr   (2003-01-30 15:16:00) [3]

где лежит GetEnumName - delphi её не знает


Бурундук   (2003-01-30 15:12:00) [4]

>RTTI не используется в простых типах, только в классах
На самом деле не совсем так:

max := GetTypeData(TypeInfo(TMyType))^.MaxValue;
name := GetEnumName(TypeInfo(TMyType), max);


anbezr   (2003-01-30 15:12:00) [5]

прочитал - работает


uw   (2003-01-30 15:08:00) [6]

>anbezr (30.01.03 14:58)

Last := Ord(High(TMyType));


han_malign   (2003-01-30 15:05:00) [7]

2 anbezr
еще раз - читай ВНИМАТЕЛЬНЕЙ


anbezr   (2003-01-30 15:04:00) [8]

пардон - встял в чужой разговор :-}


anbezr   (2003-01-30 15:01:00) [9]

Удалено модератором
Примечание: Offtopic


uw   (2003-01-30 15:01:00) [10]

Понял.


han_malign   (2003-01-30 15:01:00) [11]

2 anbezr
читай внимательней
han_malign © (30.01.03 14:40)


han_malign   (2003-01-30 14:59:00) [12]

Удалено модератором
Примечание: Offtopic


anbezr   (2003-01-30 14:58:00) [13]

Last := High(TMyType);
не работает...
говорит Incopatible types Cardinal and TMyType...


gsu   (2003-01-30 14:57:00) [14]

Удалено модератором
Примечание: Offtopic


uw   (2003-01-30 14:56:00) [15]

Удалено модератором
Примечание: Offtopic


anbezr   (2003-01-30 14:49:00) [16]

спасибо, понял...


han_malign   (2003-01-30 14:41:00) [17]

RTTI не используется в простых типах, только в классах


han_malign   (2003-01-30 14:40:00) [18]

А ты не знаешь сколько у тебя элементов и как они названы???
З.Ы. Ну количество еще можно (Ord(High(TMyType))+1)...


REA   (2003-01-30 14:39:00) [19]

function High(X);

Description

In Delphi code, call High to obtain the upper limit of an Ordinal, Array, or ShortString value. The result type is X, or the index type of X.

С названиями сложнее - придется лезть в RTTI, если оно включено. А тебе зачем?


Наверх

Титульная страница Поиск, карта сайта Написать письмо