PDA

Показать полную графическую версию : Свойство компонента.


Prisoner
28-06-2003, 20:48
Иногда надо узнать есть ли у компонента то или иное свойство, так вот, как во время выполнения проги выяснить в процедурке есть ли у переданного ей компонента (TComponent) скажем свойство Caption. Возможно ли сие? Не проверять же типы компонет is или не is %\

vasketsov
29-06-2003, 00:58
Prisoner
Если это твое свойство, то проще всего это сделать через интерфейс. То есть, опиши свой интерфейс и проверяй, реализует его компонент или нет. Привязка к классу в этом случае не нужна (то есть, ссылки на кучу модулей добавлять не придется).

Выполнение методов (а, следовательно, и чтение/запись свойств) можно реализовать через DefaultHandler, он у всех объектов есть, тоже своего рода интерфейс.

В общем случае задача проверки наличия свойства у компонента по ссылке на него - нерешаемая. Для published - можно, но тоже нетривиально (можно попытаться сохранить объект в своем хранилище, если свойство сохраняемое, ты его получишь).

Как вариант - если есть доступ к ресурсам (DFM) - пропарсить их.

Prisoner
29-06-2003, 04:03
Ответ пусть и не обнадеживающий, но большое спасибо за оный...




© OSzone.net 2001-2012