![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сокрытие свойства [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'
Как избавиться от предупреждения?