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

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

Создание двух визуальных компонентов в дизайн-тайм.


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 этого компонента.


Наверх

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