Форум: "Основная";
Текущий архив: 2004.01.13;
Скачать: [xml.tar.bz2];
Внизкак убрать 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c