![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Наследники [D6, WinXP]
webpauk © (2005-03-04 17:25:00)Есть
Tcontrol = class;
public
property Enabled: Boolean read fEnabled write SetEnabled;
end;
Есть
TcustomControl = class(TControl);
Вопрос: как у TcustomControl исключить какое-нибудь свойство Tcontrol?
MU (2005-03-04 18:02:00) [1]может, создать предка обоих этих классов
TBaseControl = class(Txxxxx);
protected
property Enabled read ... write ...;
end;
а у двух потомков уже "открывать", что надо?
begin...end (2005-03-04 17:57:00) [2]> Vlad © (04.03.05 17:50) [9]
Сужение области видимости свойства в потомке невозможно.
webpauk (2005-03-04 17:52:00) [3]> Vlad
Спасибо!
Vlad (2005-03-04 17:50:00) [4]Может в protected вынести?
Tcontrol = class;
public
property Enabled: Boolean read fEnabled write SetEnabled;
end;
TcustomControl = class(TControl);
protected
property Enabled;
end;
webpauk (2005-03-04 17:50:00) [5]А чего такое?
[Warning] Control.pas(80): Property declaration references ancestor private 'TControl.fEnabled'
webpauk (2005-03-04 17:48:00) [6]Вот ведь гадство какое!
Ладно запрещу хотя бы запись!
Defunct (2005-03-04 17:47:00) [7]низя исключить свойства предка.
begin...end (2005-03-04 17:46:00) [8]> webpauk (04.03.05 17:25)
Никак.
Anton_K (2005-03-04 17:46:00) [9]>webpauk
Это нарушает принципы ООП.
webpauk (2005-03-04 17:40:00) [10]>mrAld
Tcontrol - свойство Enabled - надо.
TcustomControl - не надо!
webpauk (2005-03-04 17:38:00) [11]это исключит запись в свойство. Надо полностью всё свойство.
mrAld (2005-03-04 17:37:00) [12]поставить свойство в TControl в private
или я что-то не так понял?
BlackTr (2005-03-04 17:30:00) [13]
property Enabled: Boolean read fEnabled;