|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Вопрос о классах и наследовании...
Здравствуйте, подскажите пожалуйста как можно скрыть некоторые процедуры, функции и свойства выборочно при наследовании ?
например у нас есть класс: type Код:
TClassFirst = class private FBol:Boolean; Function FGetTestProperty:Boolean; Procedure FSetTestProperty(Val:Boolean); public Property TestProperty:Boolean read FGetTestProperty write FSetTestProperty; end; TClassSecond = class(TClassFirst) end; так же ещё как можно скрыть функции, процедуры, которые доступны всем, т.е. которые находятся в public и свойства в published. Подскажите пожалуйста... Если Вы находите ошибки, исправить которые дело долгое и нудное, ничего не делайте - просто внесите их в список особенностей |
#2
|
|||
|
|||
Согласно справке, вы не можете понижать «степень видимости» членов класса.
Цитата:
В частности, там написано, что хотя вы и не можете сделать свойство менее видимым, но вы можете перекрыть его и изменить процедуры чтения и записи свойства. |
#3
|
||||
|
||||
Спасибо
Спасибо за ответ, очень жаль конечно, что такое невозможно
Если Вы находите ошибки, исправить которые дело долгое и нудное, ничего не делайте - просто внесите их в список особенностей |
#4
|
|||
|
|||
напрямую - невозможно. А в обход - сколько влезет:
Код:
type TBaseClass = class protected property p1 : integer read ... write ...; property p2 : integer read ... write ...; end; TFirstClass = class(TBaseClass) public property p1; // Показали end; TSecondClass = class(TBaseClass); public property p2; // Показали end; С методами такое не пройдет, но можно сделать просто заглушки, вызывающие protected-методы в соотв. наследниках. |