СообЧа > База Знаний > Программирование > Delphi

Вопрос

Как правильно создавать компоненты в run-time? Что задавать в качестве параметра Owner при создании компоненты? Как обрабатывать события от созданных компонент, типа нажатий на кнопки?

Ответ

Hачнем с создания.
Сущность свойства Owner в том, что владелец перед смертью уничтожает (через Free) принадлежащие ему объекты. Таким образом, все зависит от того, кому вы хотите доверить уничтожение созданных форм/компонентов. В частности, если вы сами будете этим заниматься, то AOwner может быть, например, nil.
Для того, чтобы созданный компонент появился на экране, надо указать его родителя, заполнив свойство Parent, например,

NewButton.Parent := Form1;

Пример кода, обрабатывающего события от свежесозданных компонентов:

type
  TForm1 = class(TForm)
  { … }
  private
  { эта процедура будет вызываться при нажатии на кнопку }
  procedure ButtonClicked(Sender : TObject);

  public
  { в этой процедуре происходит создание кнопки }
      procedure CreateButton;

  end;

{ … }

procedure TForm1.CreateButton;
var
    btn : TButton;
begin
 btn := TButton.Create(Self); // Уничтожать кнопку будет форма
 btn.Parent := Self; // Родителем кнопки будет форма
 btn.OnClick := ButtonClicked; // Процедура, которая будет исполняться при
 btn.Visible := true; // нажатии на кнопку
end;

Из конференции Delphi



Copyright © 2000-2004 Сообщество Чайников
Контактная информация