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

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

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

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

Сообщение Роман1971 » 13.01.2008 16:38:16

Как мне добавить в компонент родитель, например 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) - следовательно объект создан, но его не видно... :(
Я что-то делаю не так?
Роман1971
новенький
 
Сообщения: 69
Зарегистрирован: 30.05.2007 09:14:53

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

Сообщение Сергей Смирнов » 13.01.2008 17:13:10

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

Сообщение Роман1971 » 16.01.2008 10:02:44

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

Сообщение v-t-l » 16.01.2008 16:37:03

А почему
Код: Выделить всё
Button1:=TButton.Create(Application);

а не
Код: Выделить всё
Button1:=TButton.Create(Self);
?
Тогда и Parent, а может и Show не потребуется. (сейчас негде проверить).
v-t-l
энтузиаст
 
Сообщения: 728
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение Attid » 16.01.2008 17:05:32

понадобится, owner это не parent
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 59

Рейтинг@Mail.ru