Главная страница
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.015 c
1-37648
Cam
2003-12-31 07:53
2004.01.13
DCU


3-37500
Dmitriy
2003-12-17 11:11
2004.01.13
Проблема при переходе на Oracle c MSSQL


11-37601
Separator
2003-04-11 10:42
2004.01.13
KOL и MySQL


14-37928
Agent[007]
2003-12-20 16:55
2004.01.13
СРОЧНО! У МЕНЯ 22 ДЕКАБРЯ ЭКЗАМЕН ПО ГЕОМЕТРИИ!


3-37546
OlegM
2003-12-16 06:30
2004.01.13
Как проверить что Blob поле пустое