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

Вниз

Имя переменной - в строку   Найти похожие ветки 

 
Grotesk ©   (2004-01-03 16:57) [0]

С праздником коллеги!
Вопрос достаточно простой, но ответ искать некогда.
Существует перечислимый тип. Например:

type TMyType = (ftUnknown, ftString, ftSmallint, ftInteger)

Я не знаю точно, как называются значения, включенные в него.
Нужно сформировать список имен этих значений и положить его в Memo.

Заранее благодарю.


 
Grotesk ©   (2004-01-03 17:06) [1]

Ответьте пожалуйста!


 
Неизвестный доброжелатель   (2004-01-03 17:15) [2]

Уважаемый Гротеск, все дело в том что эти имена ftUnknown..ftInteger существуют лишь для нас с вами, но для компилятора это просто числа 0..3.
Так что перечислить ПРОГРАММНО так как вы хотите нельзя :(


 
Grotesk ©   (2004-01-03 17:21) [3]

> Неизвестный доброжелатель
Благодарю что развеяли мои надежды. Будем искать описание типа.


 
default ©   (2004-01-03 17:27) [4]

можно, используется RTTI, за примером идити к "Рук-ву разр-ка"


 
Sandman25 ©   (2004-01-03 17:40) [5]

uses Typinfo

GetEnumName(TypeInfo(TMyType), MyVar)


 
Grotesk ©   (2004-01-03 17:49) [6]

> default Насколько мне известно RTTI работает только с объектами:

ClassName()
ClassType()
ClassInfo()
InheritsFrom() и т. д.

В моем случае это просто перечислимый тип. Как Integer. Только в случае Integer я могу написать к примеру вот так:

for I:=0 to 10000 do begin
Memo1.Lines.Add( IntToStr(I));
end;


Чего нельзя сделать с моим типом.


 
default ©   (2004-01-03 17:54) [7]

а у объектов есть свойства, причём разного типа, в их числе и перечислимый тип
"Чего нельзя сделать с моим типом."
почему? твой перечислимый тип это байт которому явно компилятор позволит присвоить только три значения 0, 1, 2, 3, которые "обзываются" именами для удобства...
а пример тебе дали см Sandman25 © (03.01.04 17:40) [5]


 
Sandman25 ©   (2004-01-03 17:55) [8]

type
TMyType = (ftUnknown, ftString, ftSmallint, ftInteger);

procedure TForm1.Button1Click(Sender: TObject);
var
MyVar: TMyType;
begin
for MyVar := Low(TMyType) to High(TMyType) do
Memo1.Lines.Add(GetEnumName(TypeInfo(TMyType), Ord(MyVar)));
end;


 
Grotesk ©   (2004-01-03 17:58) [9]


> Sandman25 © (03.01.04 17:40) [5]
> uses Typinfo
>
> GetEnumName(TypeInfo(TMyType), MyVar)

А вот за это огромное спасибо!


 
Grotesk ©   (2004-01-03 17:59) [10]

Господа Программисты! Нет слов! Обромное всем спасибо!



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

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

Наверх




Память: 0.49 MB
Время: 0.028 c
1-49614
RoLeX
2004-01-03 14:17
2004.01.16
Как заставить включить/выключить лампочки Caps/Num/Scroll Lock ??


3-49439
Жук
2003-12-18 13:53
2004.01.16
Передача параметра в TIBSQL


14-49691
Александр В
2003-12-26 12:57
2004.01.16
Никому ноутбук не нужен?


7-49797
Vitall
2003-11-04 11:27
2004.01.16
Как определить установлен ли у юзера Excel (любой версии)


4-49802
RustiK
2003-11-12 07:33
2004.01.16
Handle of Child