Визуальные компоненты...

Вопросы программирования и использования среды Lazarus.

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

Ответить
Роман1971
новенький
Сообщения: 69
Зарегистрирован: 30.05.2007 09:14:53

Визуальные компоненты...

Сообщение Роман1971 »

Как мне добавить в компонент родитель, например TPanel, другой визуальный компонент, например типа TButton.
Пример кода:

Код: Выделить всё

type
  TPanel1=class(TPanel)
  Button1: TButton;
  private
  {private declarations}
  protected
  {protected declarations}
  procedure Loaded; override;
  public
  {public declarations}
  published
  {published declarations}
  end;

procedure TPanel1.Loaded;
begin
inherited Loaded;
Button1:=TButton.Create(Application);
Button1.Left:=32;
Button1.Top:=32;
Button1.Show;
end;

Программа компилируется, но при запуске компонент Panel1 оказывается пустым, хотя и выполняется. Компонента Button1 на ней не видно. К свойствам Button1 можно обратиться, если был выполнен метод TButton.Create(Application) - следовательно объект создан, но его не видно... :(
Я что-то делаю не так?
Аватара пользователя
Сергей Смирнов
энтузиаст
Сообщения: 595
Зарегистрирован: 28.04.2005 13:23:25
Откуда: Москва
Контактная информация:

Сообщение Сергей Смирнов »

Роман1971 писал(а):Программа компилируется, но при запуске компонент Panel1 оказывается пустым, хотя и выполняется. Компонента Button1 на ней не видно. К свойствам Button1 можно обратиться, если был выполнен метод TButton.Create(Application) - следовательно объект создан, но его не видно... :(
Я что-то делаю не так?
Забыли про Parent. Рекомендую прочесть это.
Роман1971
новенький
Сообщения: 69
Зарегистрирован: 30.05.2007 09:14:53

Сообщение Роман1971 »

Ок, спасибо.
v-t-l
энтузиаст
Сообщения: 745
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение v-t-l »

А почему

Код: Выделить всё

Button1:=TButton.Create(Application);

а не

Код: Выделить всё

Button1:=TButton.Create(Self);
?
Тогда и Parent, а может и Show не потребуется. (сейчас негде проверить).
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

понадобится, owner это не parent
Ответить