![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Создание двух визуальных компонентов в дизайн-тайм.
BKV © (2002-06-18 16:35:00)Такая ситуация:
Создаю компонент на форме в дизайн-тайм
Описание компонента:
ТMyComp=class(tbutton)
private
Mylabel:Tlabel;
public
constructor Create;override;
end;
constructor Create(AOwner: TComponent);
begin
inherited create(AOwner);
myLabel:=Tlabel.Create(AOwner);
end;
Регистрирую компонент в VCL и кидаю его на форму.
Созданная кнопка появляется на форме, а описанная в ней метка
нет. Т.к значение parent ей не присваивается.
ПОМОГИТЕ! Что делать?
Fiend (2002-06-18 18:12:00) [1]дык надо деструктор еще перекрыть, и уничтожить сначала дочерний объект а потом владельца
BKV (2002-06-18 18:10:00) [2]Попробовал перекрыть метод Setparent-работает нормально,
но после закрытия приложения выдает ошибку.
Попробовал перекрыть метод CreateWnd-все отлично!
СПАСИБО!
Игорь Шевченко (2002-06-18 17:20:00) [3]Получить доступ они могут всегда.
На CreateWnd сказать MyLabel.Parent := Self не получается ?
vuk (2002-06-18 17:19:00) [4]Перекрыть SetParent (это все равно так или иначе придется делать). Если у Вас D6 можете попробовать использовать Internal component (см. TLabeledEdit).
BKV (2002-06-18 17:12:00) [5]Delphi присваивает значение parent компонента
после выполнения конструктора этого компонента.
И компоненты, которые создаются внутри его конструктора не
могут получить доступ к parent.
Игорь Шевченко (2002-06-18 16:45:00) [6]У label должен быть parent установлен, чтобы она знала, где ей рисоваться.
> Что делать?
Очевидно, parent Label"у присваивать. В перекрытом методе CreateWnd этого компонента.