Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > array of tbutton


Автор: Форсет 13.4.2005, 21:36
в общем у меня при клике на форме создаётся объект класса Tbutton в массиве but
Код




var
numbuttons:integer=0;
but:array[0..100] of Tbutton;
 pos: Tpoint;
...

procedure TForm1.FormClick(Sender: TObject);
begin
getcursorpos(pos);
but[numbuttons]:=tbutton.Create(nil);

but[numbuttons].Name :='Button'+inttostr(numbuttons);
but[numbuttons].Height :=33;
but[numbuttons].Width :=105;
but[numbuttons].Parent :=Form1;
but[numbuttons].Caption :='КНОПКА';
but[numbuttons].Left := pos.X - form1.Left;
but[numbuttons].top:=pos.Y-form1.Top;
numbuttons:=numbuttons+1


так вот... как я понял чтобы обрабатывать нажатия на эту кнопку нужно ей присвоить NothifyEvent
Код

procedure Tform1.pressbutton (sender:tobject);
begin
{действия};
end;
.....
but[numbuttons].Onclick= PressButton;

Но так ничего не получится т.к. у каждой кнопки будет одна и та же процедура. Как мне Обрабатывать нажатия на каждую кнопку массива в отдельности?
smile

Автор: Pakshin A. S. 13.4.2005, 21:40
Код

procedure Tform1.pressbutton (sender:tobject);
begin
 case StrToInt(Copy((Sender as TButton).Name, 7, Length((Sender as TButton).Name)-6)) of
  1:
  2:
 end;

//или проще:
 if (Sender as TButton).Name = 'Button1'
  then
   ...
end;

Автор: Форсет 13.4.2005, 21:44
Спасибо!!!

Автор: Pakshin A. S. 13.4.2005, 21:45
Не за что... рад помочь.. smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)