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

Вниз

Определение типа объекта!   Найти похожие ветки 

 
vixic ©   (2002-10-31 10:41) [0]

Вот какой вопросик :o)
Есть List:TList(список), внём хранятся компоненты(ссылки на компоненты) разных типов, дак вот, как узнать к какому типу пренадлежит компонент сслка которого находится List["номер"]?

СПАСИБО! :o)


 
Внук ©   (2002-10-31 10:43) [1]

Ну, типа ClassName, что ли?


 
Skier ©   (2002-10-31 10:43) [2]

>vixic
if TObject(List["номер"]) is TSomeClass then ...


 
vixic ©   (2002-10-31 10:54) [3]

>Skier
НЕРАБОТАЕТ :o(


 
Skier ©   (2002-10-31 10:58) [4]

>vixic
То есть ?!


 
VaS ©   (2002-10-31 11:02) [5]

if TObject(List[54]) is TSomeClass then ...
Note: TSomeClass is your really class.


 
vixic ©   (2002-10-31 11:06) [6]

>Skier
Заработало
if TObject(List["номер"] ^) is TSomeClass then ...

Следующая проблема теперь нужно определить есть ли какое либо свойство у этого объекта?


 
Skier ©   (2002-10-31 11:09) [7]

>vixic
см. модуль TypInfo.pas там всё есть...


 
Skier ©   (2002-10-31 11:12) [8]

>VaS
Note: TSomeClass is your real class.


 
Zemal ©   (2002-10-31 11:19) [9]

>> Vixic
Ну ты и чудо! :) Программируешь в слепую! :) Сначала создаём проблемы, а потом скрепя зубами их преодалеваем! :) Молодчина! :)
Есть один вариант решения твоих проблем - интерфейсы. Почитай надосуге :). Только тебе придётся писать интерфейс к каждому используемому классу :)... гы-гы... это конечно неочень удобно, но другого пути я невижу... дело всё в том, что объекты у тебя в "листе" неумеют сообщать о своих свойствах :(... можешь (ещё вариант) дописывать, к каждому используемому классу, процедуру, которая возвращает список его свойст (но это маразм), а если они имеют одного предка, то сделать такую процедуру абстрактной и перекрывать в потомках... хе-хе... что-то я в дебри с утра лезу! :) Удачи! И смотри не споткнись... палочку купи :).


 
KSergey ©   (2002-10-31 13:31) [10]

Для списка объектов лучше использовать TObjectList. Там несколько полезных, как модно говорить, фич на сей счет.
А дял опереления есть/нет свойства? А надо ли?! Может иначе сделать, и Zemal © (31.10.02 11:19) прав про общего предка? Ну либо смотрите Published свойства и зафиг они нужны.



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

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

Наверх




Память: 0.49 MB
Время: 0.017 c
1-34056
Nox
2002-10-30 21:45
2002.11.11
Подскажите процедурку


1-34118
TankMan
2002-10-30 21:41
2002.11.11
Люди поможите! Опять с хуками...


7-34284
Lexx@demon
2002-09-09 20:46
2002.11.11
Как посчитать количество напечатанных страниц


4-34322
raiks
2002-09-30 14:01
2002.11.11
Как запретить панели задач менять размер?


3-33911
maxim2
2002-10-23 08:05
2002.11.11
Перенос базы из Delphi6 в Kylix2