Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.02.10;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.009 c
6-28976
pavlov
2002-12-19 17:32
2003.02.10
Сокеты - синхронный режим


1-28726
Николай В.
2003-01-31 14:06
2003.02.10
Взаимодействие объектов


1-28697
bmt
2003-01-31 13:31
2003.02.10
Как создать меню и панель инструментов, как в Delphi и MS Office


1-28813
Kair
2003-02-01 20:50
2003.02.10
Мне это не нравится.


1-28740
Alex G
2003-01-31 23:09
2003.02.10
Проблема сортировки... Украинские слова





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский