Вниз
Скачать: CL | DM;

как перенести свойство предка из published в public?   Найти похожие ветки 

 
alo   (2004-12-11 15:22) [0]

сабж


 
jack128 ©   (2004-12-11 17:19) [1]

никак.  А зачем?


 
alo   (2004-12-11 17:38) [2]

например, делается компонент-наследник TListView, где список Items программно формируется, и не нужно (или нежелательно) в дизайн-тайм работать с Items


 
jack128 ©   (2004-12-11 17:45) [3]

наследоваться не от TListView, а от TCustomListView


 
alo   (2004-12-12 16:30) [4]

да, на самом деле...
и придется публиковать все свойства и события. но это пол-беды (пока кажется бедой).
а как поступать, если мне нужен метод, имеющийся у TListView, но не имеющийся у TCustomListView? переписывать?


 
Юрий Зотов ©   (2004-12-12 17:18) [5]

> alo   (12.12.04 16:30) [4]

> придется публиковать все свойства и события. но это пол-беды
> (пока кажется бедой).

Особой беды тут нет, все делается очень просто:

published
 property Имя_свойства;
 ...
end;

И больше ничего не требуется.

> а как поступать, если мне нужен метод, имеющийся у TListView,
> но не имеющийся у TCustomListView? переписывать?

Обычно такого не бывает, поскольку Custom-классы именно так и строятся, что они дают всю функциональность, а рабочий класс-наследник только публикует нужные ему свойства. Но если все же такая ситуация встретилась - да, придется писать метод ручками.

Впрочем, есть еще одна возможность "закрыть" свойство для Инспектора объектов - нужно зарегистрировать для этого свойства свой редактор, указав nil вместо класса самого редактора (см. RegisterPropertyEditor).


 
Igorek ©   (2004-12-14 01:41) [6]


> Впрочем, есть еще одна возможность "закрыть" свойство
> для Инспектора объектов - нужно зарегистрировать для
> этого свойства свой редактор, указав nil вместо класса
> самого редактора (см. RegisterPropertyEditor).

Насколько я помню есть еще один способ. Переопредилить св-во исключив один из методов доступа. По крайней мере в поток оно его точно не запишет.


 
vuk ©   (2004-12-14 17:05) [7]

to Igorek ©   (14.12.04 01:41) [6]:
>Переопредилить св-во исключив один из методов доступа.
И потом ловить глюки на предмет, почему криво работает.


 
Igorek ©   (2004-12-14 19:09) [8]

vuk ©   (14.12.04 17:05) [7]
Ну, тут уж знаем на что идем.


 
alo   (2004-12-15 14:00) [9]

2Igorek
"Переопредилить св-во исключив один из методов доступа"

а можно как-нибудь на самом простом примере?


 
jack128 ©   (2004-12-15 18:55) [10]

TBaseObject = class(TComponent)
published
 property SameProp: string read GetProp write SetProp;
end;

TChildObject = class
published
 property SameProp: string read GetProp;
end;



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

Скачать: CL | DM;



Память: 0.47 MB
Время: -0.974 c
1-1127885181
C00ler
2005-09-28 09:26
2005.10.16
Вывод текста разными стилями из потока


14-1127719744
Empleado
2005-09-26 11:29
2005.10.16
Скорость света


2-1127212304
ZSergey
2005-09-20 14:31
2005.10.16
Как получить значение ...


3-1125084084
meckon
2005-08-26 23:21
2005.10.16
Вопрос по извлечению имен компонентов


14-1127828846
pazitron_brain
2005-09-27 17:47
2005.10.16
Как стать модератором?




   Наверх