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

Вниз

фсё то же перечисление   Найти похожие ветки 

 
anbezr   (2003-01-30 14:35) [0]

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

type TMyType = (mtFirst, mtSecond, mtThird);

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


 
REA ©   (2003-01-30 14:39) [1]

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, если оно включено. А тебе зачем?


 
han_malign ©   (2003-01-30 14:40) [2]

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


 
han_malign ©   (2003-01-30 14:41) [3]

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


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

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


 
uw ©   (2003-01-30 14:56) [5]

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


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

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


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

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


 
han_malign ©   (2003-01-30 14:59) [8]

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


 
han_malign ©   (2003-01-30 15:01) [9]

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


 
anbezr   (2003-01-30 15:01) [10]

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


 
uw ©   (2003-01-30 15:01) [11]

Понял.


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

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


 
han_malign ©   (2003-01-30 15:05) [13]

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


 
uw ©   (2003-01-30 15:08) [14]

>anbezr (30.01.03 14:58)

Last := Ord(High(TMyType));



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

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


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

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

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


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

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


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

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

НУ ты выдал


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

typinfo.pas



Страницы: 1 вся ветка

Текущий архив: 2003.02.10;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.024 c
1-28734
anod
2003-01-31 15:19
2003.02.10
Цвет текста в меню


1-28732
Paladin
2003-01-30 18:32
2003.02.10
Автоматическое создание класса.


14-29089
Lancelot
2003-01-25 16:40
2003.02.10
:)))


1-28779
DAN
2003-02-01 16:07
2003.02.10
DLL?


14-29001
Supreme
2003-01-23 23:59
2003.02.10
Фильмосоздание