Сокрытие свойств предка в наследнике

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Сокрытие свойств предка в наследнике

Сообщение VirtUX » 08.09.2010 22:44:23

Как скрыть published свойство в наследуемом классе?
Например:
Код: Выделить всё
TMother = class(TComponent)
...
published
  property AnyProp: TAnyType read FAnyProp write SetAnyProp;
end;

TNewClass = class(TMother)
// убрать из видимости в "Инспекторе объектов" AnyProp, или вообще сделать его недоступным
end;
Аватара пользователя
VirtUX
энтузиаст
 
Сообщения: 880
Зарегистрирован: 05.02.2008 10:52:19
Откуда: Крым, Алушта

Re: Сокрытие свойств предка в наследнике

Сообщение Mr.Smart » 08.09.2010 22:57:01

Ан, не получится...
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Сокрытие свойств предка в наследнике

Сообщение VirtUX » 09.09.2010 00:08:27

Может есть какие-то обходные пути? В С++ есть такая возможность. Теплется надежда, что и в FPC можно как-то устроить...
Аватара пользователя
VirtUX
энтузиаст
 
Сообщения: 880
Зарегистрирован: 05.02.2008 10:52:19
Откуда: Крым, Алушта

Re: Сокрытие свойств предка в наследнике

Сообщение Mr.Smart » 09.09.2010 00:15:20

Может в FPC, что и придумали, я компонентами не замарачиваюсь (не пишу давно уже со времён D7).
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Сокрытие свойств предка в наследнике

Сообщение VirtUX » 09.09.2010 00:42:51

Mr.Smart писал(а):не пишу давно уже со времён D7

Я никогда не заморачивался с написанием компанент. Только простенькие на основе чужих в Делфях. Но недавно попробывал - и вкупил, какая это класная и удобная фича. Вот практикуюсь, переписывая старые проекты.
В одном вот - понадобилось скрыть свойство. Конечно - это не вкрай принципиально, но так было бы безопасней и красивее.
Аватара пользователя
VirtUX
энтузиаст
 
Сообщения: 880
Зарегистрирован: 05.02.2008 10:52:19
Откуда: Крым, Алушта

Re: Сокрытие свойств предка в наследнике

Сообщение Sergei I. Gorelkin » 09.09.2010 01:17:34

В Object Pascal область видимости при наследовании может только расширяться. Уменьшать ее нельзя.
Из-за этого VCL/LCL имеют две параллельные иерархии TCustomXXX и TXXX, где основная функциональность содержится в TCustomXXX, а TXXX только публикует нужные свойства.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1406
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Рейтинг@Mail.ru