Wolfgang Chien's Homepage | Delphi學習筆記 - 問答篇 |
我有兩個button,共用一個method,想要在method中判別是那個OnClick 應如何作到? 謝謝!
請以 Sender 判斷. 據我所知有兩個方法可以辦到:
![]() |
1. 利用 if Sender = YourComponentName 一個個去判斷 |
![]() |
2. 每個元件(TComponent以下)都有一個 Tag 屬性, 如果在設計階段各別指定一個數字給它們, 就可以根據這個屬性識別出不同的元件 |
以下有一個例子:(Delphi 1.0)
![]() |
1. File | New Project |
![]() |
2. 在 Form 中放置兩個 Button |
![]() |
3. 在 Object Inspector 中, 對於
Button1 的 Tag 屬性設為 1 Button2 的 Tag 屬性設為 2 |
![]() |
4. 以 Shift + MouseButton, 同時選取 Button1 與 Button2 |
![]() |
5. 在 Object Inspector 中, OnClick 事件欄填入: TwoButtonClick |
![]() |
6. 在以下的 TForm1.TwoButtonClick(Sender: TObject); Begin..End; 之間填入下列程式
procedure TForm1.TwoButtonClick(Sender: TObject); begin (* 第一種判斷方式 *) if Sender = Button1 then ShowMessage('Via Name -- Button1 Click') else if Sender = Button2 then ShowMessage('Via Name -- Button2 Click'); (* 第二種判斷方式 *) if Sender is TComponent then begin case TComponent(Sender).Tag of 1: ShowMessage('Via Tag -- Button1 Click'); 2: ShowMessage('Via Tag -- Button2 Click'); end; end; end; |
![]() |
7. 執行看看吧! |
首頁 | 學習筆記 | 主題公園 | 軟體下載 | 關於本站 | 討論信群 | 相約下次 |