Цитата(CROTishka @ 25.11.2010, 18:27 ) | | Да, сейчас в 2010 проперти видны все, в независимости от визибилити и указаны ли они явно. |
На основании чего сделан такой вывод? Вы явно что-то путаете. Я не имел дела с Delphi выше 2006, но не думаю, что там что-то принципиально изменилось. Так что давайте разбираться. Начнём с самого начала. private - видимость только в этом классе, в наследниках недоступно. protected - видимость в этом классе и всех потомках. public - доступно всем published - доступно всем, сохраняется в dfm, выводится в инспектор объектов. Если спецификатор видимости не указан - это published Обычно в базовом классе свойства объявляются как protected. При этом они объявляются с read/write методами. В потомках свойства, которым нужно повысить видимость, указываются в секции public или published без указания методов чтения/записи. Это трактуется как изменение видимости ранее объявленного свойства. Понижать видимость не принято. Некоторые свойства изначально могут объявляться как published, тогда в наследниках нет необходимости увеличивать их видимость Пример:
| Код | TControl = class(TComponent) private function GetText: TCaption; procedure SetText(const Value: TCaption); protected property Caption: TCaption read GetText write SetText stored IsCaptionStored; end;
TCustomForm = class(TScrollingWinControl) private function GetMDIChildCount: Integer; protected property MDIChildCount: Integer read GetMDIChildCount; end;
TForm = class(TCustomForm) public property MDIChildCount; published property Caption; end;
|
Посмотрите конкретно эти свойства в своей Delphi 2010. Вряд ли там что-то должно сильно измениться конкретно с Caption и MDIChildCount. Если у вас в инспекторе объектов отображаются какие-то свойства, которые отображаться не должны, приведите конкретный пример. |