Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Определение типа объекта! [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 ...


Наверх

Титульная страница Поиск, карта сайта Написать письмо