![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Определение типа объекта! [D5, Win95/98, Win2k]
vixic © (2002-10-31 10:41:00)Вот какой вопросик :o)
Есть List:TList(список), внём хранятся компоненты(ссылки на компоненты) разных типов, дак вот, как узнать к какому типу пренадлежит компонент сслка которого находится List["номер"]?
СПАСИБО! :o)
KSergey (2002-10-31 13:31:00) [1]Для списка объектов лучше использовать TObjectList. Там несколько полезных, как модно говорить, фич на сей счет.
А дял опереления есть/нет свойства? А надо ли?! Может иначе сделать, и Zemal © (31.10.02 11:19) прав про общего предка? Ну либо смотрите Published свойства и зафиг они нужны.
Zemal (2002-10-31 11:19:00) [2]>> Vixic
Ну ты и чудо! :) Программируешь в слепую! :) Сначала создаём проблемы, а потом скрепя зубами их преодалеваем! :) Молодчина! :)
Есть один вариант решения твоих проблем - интерфейсы. Почитай надосуге :). Только тебе придётся писать интерфейс к каждому используемому классу :)... гы-гы... это конечно неочень удобно, но другого пути я невижу... дело всё в том, что объекты у тебя в "листе" неумеют сообщать о своих свойствах :(... можешь (ещё вариант) дописывать, к каждому используемому классу, процедуру, которая возвращает список его свойст (но это маразм), а если они имеют одного предка, то сделать такую процедуру абстрактной и перекрывать в потомках... хе-хе... что-то я в дебри с утра лезу! :) Удачи! И смотри не споткнись... палочку купи :).
Skier (2002-10-31 11:12:00) [3]>VaS
Note: TSomeClass is your realclass.
Skier (2002-10-31 11:09:00) [4]>vixic
см. модуль TypInfo.pas там всё есть...
vixic (2002-10-31 11:06:00) [5]>Skier
Заработало
if TObject(List["номер"] ^) is TSomeClass then ...
Следующая проблема теперь нужно определить есть ли какое либо свойство у этого объекта?
VaS (2002-10-31 11:02:00) [6]
if TObject(List[54]) is TSomeClass then ...
Note: TSomeClass is your reallyclass.
Skier (2002-10-31 10:58:00) [7]>vixic
То есть ?!
vixic (2002-10-31 10:54:00) [8]>Skier
НЕРАБОТАЕТ :o(
Внук (2002-10-31 10:43:00) [9]Ну, типа ClassName, что ли?
Skier (2002-10-31 10:43:00) [10]>vixic
if TObject(List["номер"]) is TSomeClass then ...