Главная страница
    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.46 MB
Время: 0.008 c
14-37907
medo
2003-12-21 04:15
2004.01.13
TopSpeed Odbc


6-37827
AlexanderSK
2003-11-10 16:54
2004.01.13
Несколько HTTP запросов один за одним


1-37766
baataars
2003-12-31 15:08
2004.01.13
dbgrid и колесико мыши


14-37929
ZDima
2003-12-19 23:05
2004.01.13
Народ, помогите решить тест Айзенка.


7-37945
VitGun
2003-09-24 18:32
2004.01.13
LPT(378h или 379h)?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский