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

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

Как определить событие OnClik в динамически созданном объекте Bu


Aleks ©   (2011-11-25 14:00:00) 

Доброго времяни суток. Как определить событие  OnClik в динамически созданном объекте Button.
Я делаю:

       procedure TForm1.Button1Click(Sender: TObject)  
            Var
             Butto: array of TButton;
       Begin      
          Butto := TButton.Create(Self);
          Butto.Parent := Form1;
          // создал кнопку  но как и где отследить её нажатие ??? звук Beep по её нажатию например.
       End;

Объясните с примером, пожалуйста.


Aleks   (2011-11-25 14:44:00) [1]

Спасибо


OW   (2011-11-25 14:23:00) [2]

т.е. пишете метод OnClickBtn

 TForm1 = class(TForm)
   btn1: TButton;
   procedure btn1Click(Sender: TObject);
 private      { Private declarations }
 public       { Public declarations }
   procedure OnClickBtn(sender: TObject);
 end;

и реализация его
procedure TForm1.OnClickBtn(sender: TObject);
begin
 if sender is TButton then
   ShowMessageFmt('Êíîïêà ñ tag = %d',[TButton(sender).Tag]);
end;

затем присвоение
b := TButton.Create(nil);
b.OnClick :=  OnClickBtn;


Aleks   (2011-11-25 14:22:00) [3]

OW -- Спасибо


Aleks   (2011-11-25 14:21:00) [4]

Спасибо Омлет, RWolf . Разобрался.

Butto.OnClick := //а тут пишем имя процедуры-обработчика


OW   (2011-11-25 14:20:00) [5]

procedure TForm1.OnClickBtn(sender: TObject);
begin
  if sender is TButton then
    ShowMessageFmt('Êíîïêà ñ tag = %d',[TButton(sender).Tag]);
end;

procedure TForm1.btn1Click(Sender: TObject);
var
 b: TButton;
begin
 b := TButton.Create(nil);
 b.Tag := 1;
 b.Visible := false;
 b.Parent := Form1;
 b.Left := 50;
 b.Top := 50;
 b.OnClick :=  OnClickBtn;
 b.Visible := True;

 b := TButton.Create(nil);
 b.Tag := 2;
 b.Visible := false;
 b.Parent := Form1;
 b.Left := 150;
 b.Top := 150;
 b.OnClick :=  OnClickBtn;
 b.Visible := True;
end;


Омлет   (2011-11-25 14:15:00) [6]

Butto := TButton.Create(Self);
   Butto.Parent := Form1;
   Butto.OnClick := MyBtnClick;

procedure TForm1. MyBtnClick(Sender: TObject);
begin
 ShowMessage('olala');
end;


Aleks   (2011-11-25 14:12:00) [7]

RWolf ©   (25.11.11 14:03) [1]

btn.OnClick := MyBtnClick;

Объясни по подробней пожалуйста.


RWolf   (2011-11-25 14:03:00) [8]

btn.OnClick := MyBtnClick;


Наверх

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