![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ComboBox
Evgeny © (2002-01-23 08:31:00)Имеем такой тип:
TAlign = (alNone, alTop, alBottom, alLeft, alRight, alClient);
каким образом это можно поместить в ComboBox? Ведь в инспекторе как то это сделано.
Evgeny (2002-01-24 11:14:00) [1]Понял, спасибо.
Юрий Зотов (2002-01-23 13:54:00) [2]См. модуль TypInfo, функция GetEnumName.
Пример:
type
TMyEnumType = (Ident0, Ident1, Ident2);
Вызов
GetEnumName(TypeInfo(TMyEnumType), 1)
возвращает строку "Ident1".
Вот и весь секрет.
vlv (2002-01-23 13:46:00) [3]Это где-то в RTTI сидит.
Evgeny (2002-01-23 13:25:00) [4]Все замечательно, но перерыв все исходники, я нигде не нашел ссылки на String. Каким образом Borland это умудрился сделать. Ведь ComboBox как раз и требует строкового представления итема, а они это как то обошли. Но как?
Данный тип:
TAlign = (alNone, alTop, alBottom, alLeft, alRight, alClient);
я взял просто для примера, но поглядите в инспектор - там полно таких "типов", помещеных в ComboBox. И не на один из них мне не удалось найти строкового соответствия.
Rem (2002-01-23 10:29:00) [5]Помещаем:
ComboBox.Items.AddObject("alNone", TObject(alNone));
Получаем:
TAlign(ComboBox.Items.Objects[ComboBox.ItemIndex])