動態生成的ComboBox,如何當我Click 它時,call另一個函數而且帶一個String |
答題得分者是:careychen
|
gptesu
一般會員 ![]() ![]() 發表:14 回覆:14 積分:5 註冊:2008-09-09 發送簡訊給我 |
我動態生成了一個ComboBox, 當我Click 它時,我希望它call 另一個函數而且帶一個String的,我寫了下面的程式,但有其中有一點問題不懂,請各位幫忙幫忙解決!!謝謝!!
Proceduce MyClick(Sender: TObject; msg : string); Proceduce TForm1.MyClick(Sender: TObject; msg : string) begin showmessage(msg ); end; ... //動態生成了一個MyComboBox MyComboBox.OnClick := MyClick(???????????) // <---這裏要填什麼? ... |
herbert2
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:58 回覆:640 積分:894 註冊:2004-04-16 發送簡訊給我 |
|
gptesu
一般會員 ![]() ![]() 發表:14 回覆:14 積分:5 註冊:2008-09-09 發送簡訊給我 |
|
herbert2
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:58 回覆:640 積分:894 註冊:2004-04-16 發送簡訊給我 |
|
pceyes
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:70 回覆:657 積分:1140 註冊:2003-03-13 發送簡訊給我 |
參考一下,雖不如您的要求,但目的可以達到。
[code 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 MyClick(sender:Tobject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; MyComboBox:TComboBox; implementation {$R *.dfm} procedure TForm1.MyClick(sender:Tobject); begin if sender is TComBoBox then begin showmessage('字串參數: ' TComBoBox(Sender).hint); showmessage('數字參數: ' inttostr(TComBoBox(Sender).tag)); end; end; procedure TForm1.Button1Click(Sender: TObject); begin MyComboBox:= TComboBox.create(self); with MyComboBox do begin Parent := form1; Left := 0; Top := 0; Hint := 'msg'; // 字串參數 Tag := 9999; // 數字參數 Items.Text := '1'; onclick:= MyClick; end; end; end. [/code]
------
努力會更接近成功
編輯記錄
pceyes 重新編輯於 2008-12-03 15:22:25, 註解 無‧
|
herbert2
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:58 回覆:640 積分:894 註冊:2004-04-16 發送簡訊給我 |
|
careychen
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:41 回覆:580 積分:959 註冊:2004-03-03 發送簡訊給我 |
Hi, 我寫另一種方式給你參考,可以修改 TComboData 裡的 Record 結構來放入更多你需要的資料
[code delphi] unit Unit1; interface uses Windows, SysUtils, Dialogs, Forms, Classes, Controls, StdCtrls; type PComboData = ^TComboData; TComboData = record myString: String; myInteger: Integer; end; TForm1 = class(TForm) Button1: TButton; procedure FormCreate(Sender: TObject); private { Private declarations } public procedure MyClick(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.MyClick(Sender: TObject); begin with TComboBox(Sender) do ShowMessage(PComboData(Items.Objects[ItemIndex])^.myString); end; procedure TForm1.FormCreate(Sender: TObject); var ComboData: PComboData; I: Integer; begin with TCombobox.Create(Self) do begin Top := 100; Left := 100; Parent := Self; OnClick := MyClick; for I := 0 to 3 do begin New(ComboData); ComboData^.myString := '我是第 ' IntToStr(I) ' 個 Item'; ComboData^.myInteger := I; Items.AddObject('第 ' IntToStr(I) ' 個項目', TObject(ComboData)); end; end; end; end. [/code]
------
價值的展現,來自於你用哪一個角度來看待它!! |
gptesu
一般會員 ![]() ![]() 發表:14 回覆:14 積分:5 註冊:2008-09-09 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |