Вниз
Скачать: 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.031 c
14-1127633600
Kolan
2005-09-25 11:33
2005.10.16
Употребление пива в общественных местах(Россия).


2-1127283609
Гость22
2005-09-21 10:20
2005.10.16
вопрос о связывании таблиц


3-1125483316
Alex Kryuchkov
2005-08-31 14:15
2005.10.16
"Мусор" в полях типа text на БД Sybase


2-1126804100
NikNet
2005-09-15 21:08
2005.10.16
Узнать что WindowsXX загружается и выгружается и время работы


1-1127381397
_Sergey_K
2005-09-22 13:29
2005.10.16
Фильтрация таблицы




   Наверх