Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сокрытие свойства [D7, WinXP]


Новенький ©   (2005-12-14 12:40:00) 

Здраствуйте.
Как скрыть Published свойство в классе наследнике.


Новенький   (2005-12-16 11:54:00) [1]

Благодарю, очень полезные замечания, вопроссов больше нет.


ЮЮ   (2005-12-16 08:48:00) [2]

Если твой класс является компонентом, то и играть следует по правилам TComponent, конструктор которого сделан виртуальным неспроста и вовсе не для того чтобы его скрывать.
Если тебе так уж важно, чтобы его owner-ом был именно TMyComponent проверь, является ли объект, переданный в качестае параметра конструктора TMyComponent или его наследником и если нет, то вызови исключение.


Юрий Зотов   (2005-12-15 20:20:00) [3]

> Новенький   (15.12.05 19:52) [8]

Посмотрите reintroduce.


Новенький   (2005-12-15 19:52:00) [4]

Спасибо всем, только никто не ответил на 2 вопрос
если я перегружаю конструктор, то есть создаю свой конструктор

constructor Create(AOwner: TMyComponent); overload;
компилятор ругается: Новенький   (14.12.05 12:49) [1]


Sash*   (2005-12-15 12:28:00) [5]


> Здраствуйте.
> Как скрыть Published свойство в классе наследнике.

Если наследуетесь от VCL компонент - выбирайте наследника с префиксом CUSTOM - в нем нет published - потом открывайте только то что хотите


Новенький   (2005-12-14 19:28:00) [6]

Сеньк


DimaBR   (2005-12-14 16:02:00) [7]

RegisterPropertyEditor(TypeInfo(integer), TMyComponent, 'Left', nil);


Новенький   (2005-12-14 14:24:00) [8]

После добавления

procedure Register;
begin
 RegisterPropertyEditor(nil, TMyComponent, 'Left', nil);
 RegisterComponents('Samples', [TMyComponent]);
end;

Появляется AV at 00341180 :(


Новенький   (2005-12-14 14:06:00) [9]

По первому вопроссу большое спасибо, а по второму у меня такая ситуация

constructor Create(AOwner: TMyComponent); overload;

Хочу объявить свой конструктор таким образом


jack128   (2005-12-14 13:14:00) [10]

Новенький   (14.12.05 12:40)
Как скрыть Published свойство в классе наследнике.

Скрыть от программиста - никак.  А чтобы скрыть это свойство в инспекторе объектов нужно зарегистрировать на него nil'sq радактор

RegisterPropertyEditor(nil, TMyControl, 'Left', nil);

Новенький   (14.12.05 12:49) [1]
Как избавиться от предупреждения?

type
 TSomeComponent = class(TComponent)
 public
   constructor Create(AOwner: TComponent); override;
 end;


Новенький   (2005-12-14 12:49:00) [11]

И еще вопросик, сделал свой конструктор у компонента компилятор выбрасывает Warning :Method 'Create' hides virtual method of base type 'TCustomControl'

Как избавиться от предупреждения?


Наверх

Титульная страница Поиск, карта сайта Написать письмо