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

Вниз

Опубликованные события у TPesistent   Найти похожие ветки 

 
jack128 ©   (2005-08-29 00:48) [0]

День добрый.

Как известно, если у некого компонента TTestComponent есть свойство типа TSomeSubPropComponent(внутреньнее, созданное с флагом  csSubComponent), то при редактировании свойств TTestComponent в Инспекторе Объектов на закладке Events мы увидем все опубликованные свойства TSomeSubPropComponent. С другой стороны, если наше свойство будет иметь тип TSomePropPersistent(то есть наследник TPersistent, но не компонент), то его события в ИО отображаться не будут. У кого нить есть соображения, почему такая дискриминация???


 
Джо ©   (2005-08-29 01:21) [1]


> jack128 ©   (29.08.05 00:48)

Так в чем кроется дискриминация? В том, что TPersistent вообще не имеет свойства ComponentStyle и, соответственно, метода SetSubComponent? Или в чем-то другом?


 
jack128 ©   (2005-08-29 11:05) [2]

в том, что в ИО не отображаются его события. А у компонентных свойств отображаются.


 
Наиль ©   (2005-08-29 12:34) [3]

TPersistent - обладает возможностью копирования информации из объекта в объект. А компонент - возможностью взаимодействия с дизайнером.
У каждого свои предназначения и не зачем требовать от них чего-то большего.

Проанализировав, объект TMethodProperty, пришёл к выводу, что всё дело в связи Дизайнер -> Метод. Так как компоненты регистрируются, то всегда есть прямой путь Дизайнер -> Компонент -> Метод.
Что касается TPersistent-свойств, то к ним тоже имеется прямой путь через родительский компонент.
А вот вслучае с методами (событиями) TPersistent цепочка может быть нарушена, т.к. TPersistent не регистрируется.

По крайней мере, именно так я увидел логику работы TMethodProperty.


 
jack128 ©   (2005-08-29 16:48) [4]

Наиль ©   (29.08.05 12:34) [3]
У каждого свои предназначения и не зачем требовать от них чего-то большего.

А чего такого "большего" я прошу??

Наиль ©   (29.08.05 12:34) [3]
А вот вслучае с методами (событиями) TPersistent цепочка может быть нарушена, т.к. TPersistent не регистрируется.

Каким образом? Событие ничем от других свойств не отличаются, и если в ИО можно редактировать свойства типа TSomePersistent.SomeIntegerProp, то точно так же можно и редактировать свойства процедурного типа.
Наиль ©   (29.08.05 12:34) [3]
По крайней мере, именно так я увидел логику работы TMethodProperty.

он тут не причем.


 
Юрий Зотов ©   (2005-08-29 17:11) [5]

Жень, посмотри пример, о котором мы говорили. Там именно такой редактор и именно для НЕкомпонента.

А почему этого не сделал дядька Борланд... а шут его знает, сам удивляюсь. Забыл, наверное...
:о)

Если есть желание, напиши такой редактор сам, в порядке самосовершенстования. Пример у тебя есть.


 
Наиль ©   (2005-08-29 17:56) [6]

>[5]
Можно узнать, о каком примере речь?
>[4]
Возможно я не полностью вник в суть редакторов свойств.
Есть версия, что во всём виноват TFont, свойство onChange которого уже во-всю используется другими компонентами. И если бы борланд пошёл вашим путём, то с этим свойством возникло бы масса проблем.


 
jack128 ©   (2005-08-29 18:27) [7]

Юрий Зотов ©   (29.08.05 17:11) [5]
Там именно такой редактор и именно для НЕкомпонента.

Так именно при просмотре примера и возник вопрос ;)

Юрий Зотов ©   (29.08.05 17:11) [5]
а шут его знает, сам удивляюсь. Забыл, наверное...

Ну понятно. Руки не дошли.  Я просто думал, может в подобном ограничении есть какой нить высокий смысл..  Ну нет, так нет...

Наиль ©   (29.08.05 17:56) [6]
TFont, свойство onChange

Это паблик свойство, так что я и сейчас могу его подменить и возникнет масса проблем ;) И в любом случае оно бы не отображалось в ИО


 
Яся   (2005-08-29 18:30) [8]

Не было бы никаких проблем - OnChange не published


 
GuAV ©   (2005-08-29 22:31) [9]

TComboExItems (коллекция итемов TComboBoxEx) имеет событие OnCompare.



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

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

Наверх




Память: 0.49 MB
Время: 0.054 c
11-1119970812
Alex1
2005-06-28 19:00
2006.02.19
Как работать с TreeView


2-1138892204
Silver__Dragon
2006-02-02 17:56
2006.02.19
Перехват нажатия Minimize


2-1138783630
SDssss
2006-02-01 11:47
2006.02.19
перенести с С в Delphi5


15-1138237006
vidiv
2006-01-26 03:56
2006.02.19
Спам...


15-1138108847
Glebkin
2006-01-24 16:20
2006.02.19
Как узнать откуда пришел троян