![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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-методы в соотв. наследниках. |