動態產生物件的問題 |
答題得分者是:hagar
|
foxcat
一般會員 發表:2 回覆:0 積分:0 註冊:2003-02-05 發送簡訊給我 |
下面的程式是我在測試的一個小程式,按下Button1可以動態產生10個Button,請問怎麼讓動態產生出來的Button被按下時可以執行對應的動作,並且傳入是哪一個按鈕被按下(在vb中,只要在物件的Click(Index as Integer)事件中,判別Index的值就可以判別是哪一個Button被按下,在Delphi中怎麼做呢??)
下面的程式執行時都會出現錯誤訊息,請大大們幫忙一下吧!!!
謝謝 unit Unit1; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls; type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure aClick(Sender: TObject ;Index : integer);
private
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1;
a : array[1..10] of TButton;
implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
for i := 1 to 10 do
begin
a[i] := tbutton.Create (owner) ;
a[i].parent := form1;
a[i].Left := 0;
a[i].Width :=button1.Width ;
a[i].Height := button1.Height ;
a[i].Top := button1.Height *i ;
a[i].Caption := inttostr(i) ;
a[i].OnClick := aClick(a[i],i) ;
a[i].Show ;
end; end; end. procedure TForm1.aClick(Sender: TObject ;Index : integer);
begin
ShowMessage(inttostr(Index));
end.
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
var Form1: TForm1; a : array[1..10] of TButton; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var i:integer; begin for i := 1 to 10 do begin a[i] := tbutton.Create (owner) ; a[i].parent := form1; a[i].Tag := i; a[i].Left := 0; a[i].Width :=button1.Width ; a[i].Height := button1.Height ; a[i].Top := button1.Height *i ; a[i].Caption := inttostr(i) ; a[i].OnClick := aClick ; a[i].Show ; end; end; procedure TForm1.aClick(Sender: TObject;); begin ShowMessage((Sender as TButton).Tag); end.發表人 - hagar 於 2003/02/24 07:03:49 發表人 - ccchen 於 2003/02/24 08:19:22 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |