線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1046
推到 Plurk!
推到 Facebook!

動態產生物件的問題

答題得分者是:hagar
foxcat
一般會員


發表:2
回覆:0
積分:0
註冊:2003-02-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-02-24 05:32:57 IP:61.56.xxx.xxx 未訂閱
下面的程式是我在測試的一個小程式,按下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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-02-24 07:02:05 IP:202.39.xxx.xxx 未訂閱
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
系統時間:2024-04-20 22:18:46
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!