Delphi - runtime

loks-po

Вопрос из области делфей:
Как назначить обработчик события (допустим onclick) для объекта, созданного в run-time. Допустим, по create формы выполняется следующее:


public
bt: TButton


...


bt:= TButton.Create(self);
bt.Parent:= Statusbar1;
bt.Top:=2;
bt.Left:=statusbar1.Panels[0].Width+5;
bt.Height:= statusbar1.Height-2;
bt.Width:= 75;
bt.Caption:= 'irgendwas';


А вот как обрабатывать нажатие этой самой кнопки, созданной в "статус-баре" я не догоняю... Может кто объяснит, если не долго?

pollak

bt.OnClick:=ProceduraVasiPupkina

yolki

Да!
будь в курсе, что твой обработчик должен быть членом какого-нибудь класса (что значит декларация of object знаешь?)
т.е. так не прокатит:


procedure MyClicker(Sender:TObject);
begin
...
end;
...
..
..
bt.OnClick=MyClicker;
..


надо вот так:


TMyForm=class(TForm)
...
..
procedure MyClick(Sender:TObject);
...
end; // of class(TForm);
..
bt.OnClick=MyClicker; // предполагается, что эта строка тоже в одном из методов TMyForm

loks-po

Ха!, странно...я именно так и делал: дописал мою процедуру в раздел типов, Ctrl+Shift+C, написал собственно процедуру, а присовение забыл...
Thanks, так должно прокатить...
Оставить комментарий
Имя или ник:
Комментарий: