Delphi 如何引用動態建立物件的程序/函數? |
答題得分者是:jow
|
alvin26
初階會員 發表:24 回覆:41 積分:28 註冊:2005-04-12 發送簡訊給我 |
|
jow
尊榮會員 發表:66 回覆:751 積分:1253 註冊:2002-03-13 發送簡訊給我 |
先了解一下 事件本身是怎麼一回事,
如何運用定義好的事件型態, 以及如何將 它掛載到相對的事件?! 以下程式碼, 供你參考... [code delphi] unit fMain; interface uses Forms, StdCtrls, Classes, Dialogs, Controls; type //自定一種事件型態(Event Function Type) TOnMyBtnClickEvent = procedure(Sender: TObject; DateTime: TDateTime) of object; { TMyButton } //改寫TButton, 使之具備TOnMyBtnClickEvent 的事件型態. TMyButton = class(TButton) private FOnMyBtnClick: TOnMyBtnClickEvent; public procedure Click; override; property OnMyBtnClick: TOnMyBtnClickEvent read FOnMyBtnClick write FOnMyBtnClick; end; TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private //宣告事件處理程序, 參數依照 TOnMyBtnClickEvent 的定義. procedure DO_OnMyBtnClick(Sender: TObject; DateTime: TDateTime); end; var Form1: TForm1; implementation uses SysUtils; {$R *.dfm} { TMyButton } procedure TMyButton.Click; begin inherited; //事件發生, 檢查是否掛載Event Handler,並發出通知 if Assigned(FOnMyBtnClick) then FOnMyBtnClick(Self, Now); end; { TForm1 } procedure TForm1.FormCreate(Sender: TObject); begin with TMyButton.Create(Self) do begin Parent := Self; Caption := '測試按鍵'; Left := 10; Top := 10; OnMyBtnClick := DO_OnMyBtnClick;//掛載事件處理程序 end; end; procedure TForm1.DO_OnMyBtnClick(Sender: TObject; DateTime: TDateTime); begin //事件處理程序的回應事件動作 ShowMessage(FormatDateTime('hh:nn:ss', DateTime)); end; end. [/code] ===================引 用 alvin26 文 章=================== 各位大大,請問一下, 在 Delphi 中, 假設我用程式碼建立一個 form, 再 create 一 個 button 放在 form 上, 想請問一下,如何可以使用這個 button 的事件呢? 例如, user 按了這個 button , 我想讓它做一些事情,應該怎麼寫才對呢? |
alvin26
初階會員 發表:24 回覆:41 積分:28 註冊:2005-04-12 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |