Главная страница
    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.48 MB
Время: 0.01 c
14-29103
petr_v_a
2003-01-24 17:52
2003.02.10
Маркировка товара на складах


1-28926
BALU1111
2003-01-30 14:00
2003.02.10
Прозрачная форма


3-28649
ruslanyd
2003-01-23 00:01
2003.02.10
Генераторы в Interbase


4-29176
DDF
2002-12-25 08:33
2003.02.10
Перехват Текста под мышью.


14-29018
Cobalt
2003-01-21 21:16
2003.02.10
Delphi<->Kylix3





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский