Главная страница
    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.47 MB
Время: 0.009 c
14-37880
SoS
2003-12-22 14:04
2004.01.13
Подскажите где взять сходники чата с возможностью отсыла файлов


1-37706
ss300
2003-12-23 14:29
2004.01.13
OpenDialog


7-37958
Артем
2003-10-30 11:41
2004.01.13
Работа с регистром


14-37878
Думкин
2003-12-22 08:05
2004.01.13
С днем рождения! 22 декабря.


14-37885
AlexCo
2003-12-22 13:38
2004.01.13
Как Проиграть звук из ресурса!!!!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский