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

Вниз

как убрать published-свойство?   Найти похожие ветки 

 
klyonov   (2003-12-29 15:51) [0]

я наследую свой компонент от TValueListEditor
у него ( TValueListEditor) есть published-свойство Strings: TStrings
как мне сделать так, чтобы у моего компонента его не было в published-части
описание свойства в protected-части как property Strings; не помогает


 
alex_*** ©   (2003-12-29 15:52) [1]

наследоваться от чего-нибудь типа TCustomValueEditor


 
Внук ©   (2003-12-29 15:55) [2]

>>описание свойства в protected-части как property Strings; не помогает
И не поможет, это противоречит концепциям ООП. Вероятно, выбран неподходящий класс предка. Можно, правда, переопределить методы доступа к свойству, но это не есть хорошо.


 
klyonov   (2003-12-29 15:55) [3]

о!
скорее всего это поможет
спасибо за ответ
но еще вопрос, в догонку к теме:
разве не должна понижаться область видимости у свойства при переносе его в наследованном классе (например, из public в protected)


 
MV   (2003-12-29 15:56) [4]

Нельзя.


 
Skier ©   (2003-12-29 15:57) [5]


> разве не должна понижаться область видимости у свойства
> при переносе его в наследованном классе (например, из public
> в protected)

Нет.
Есть два выхода
1) Самый правильный. Наследоваться от TCustomValueEditor
2) Регистрировать для св-ва nil-овый редактор


 
Юрий Зотов ©   (2003-12-29 15:58) [6]

> klyonov (29.12.03 15:55) [3]

В объектной модели Delphi видимость понизить нельзя. Можно только повысить.


 
MV   (2003-12-29 16:00) [7]

Может, использовать не наследование, а делегирование? Тогда, если это Вас устроит, можно для требуемых членов класса создать члены-"врапперы", которые будут находиться в требуемой области видимости, и переназначать обращение к свойствам и методам экземпляра делегируемого класса. А наследоваться от какого-нибудь общего предка. Если Вас это устроит, конечно.


 
KSergey ©   (2003-12-29 16:12) [8]

> [6] Юрий Зотов © (29.12.03 15:58)
> В объектной модели Delphi видимость понизить нельзя. Можно
> только повысить.

Я, конечно, прошу прощения, но вроде это справедливо только для published-видимости...
Нейжели я не прав?...


 
Юрий Зотов ©   (2003-12-29 16:38) [9]

> KSergey © (29.12.03 16:12) [8]

Почему для published? Для всех. Возьмите какое-нибудь public-свойство, в потомке перенесите его в protected и посмотрите, будет ли она доступно в экземпляре потомка.


 
KSergey ©   (2003-12-29 16:57) [10]

> [9] Юрий Зотов © (29.12.03 16:38)

Что ж, приношу извинения. Проверил.
С моей стороны было действительно большим нахальством даже на секунду предположить, что Вы допустите такой ляп. ;)

PS
Но я был уверен, что читал много раз про то, что лишь Published св-ства нельзя уже спрятать, а остальное можно. Но в книжках сейчас, увы, не нашел подтверждения или какого-либо упоминания... Может я все же лишь с чем-то путаю и что-то такое имеет место быть?... (ну должна же быть надежда, что я еще не совсем балбес ;)


 
Юрий Зотов ©   (2003-12-29 17:03) [11]

> KSergey © (29.12.03 16:57) [10]

Просто обычно про published и пишут. Такое ощущение, что авторы почему-то забывают, что свойства могут быть и public, и даже protected. А, скажем, у Конопки этот вопрос изложен четко - повысить можно, понизить нельзя, для всех.



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

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

Наверх




Память: 0.49 MB
Время: 0.022 c
1-37615
denick
2003-12-31 09:51
2004.01.13
Как удалить из TreeView`а один из Node,


14-37931
Vlad Oshin
2003-12-23 13:05
2004.01.13
ping таймаут по умолчанию (WinNt)?


1-37670
AGN
2003-12-29 16:09
2004.01.13
ListBox - подсказка для Items


8-37810
begemot
2003-09-10 21:40
2004.01.13
CDROM занят?


7-37942
Вуьшл
2003-11-02 08:56
2004.01.13
Кто знает ХР, ПОМОГИТЕ плз!!!