簡體   English   中英

如何確定delphi中哪個事件調用過程

[英]how to determine which event calls procedure in delphi

我在delphi中有一個名為XYZ(sender:TObject)的過程。 我的表單上有一個按鈕。

Button.onclick:= xyz;
Button.OnExit:= xyz;

這兩個事件都調用相同的過程。 我想在過程XYZ中確定哪個事件調用此(onclick或onexit)並根據該過程進行編碼。 如何確定哪個事件被觸發? 謝謝

您無法通過公平的方式掌握這些信息。 解決方案是使用兩個單獨的頂級事件處理程序,這些處理程序又可以調用另一個傳遞參數的方法來識別正在處理哪個事件。

type
  TButtonEventType = (beOnClick, beOnExit);

procedure TMyForm.ButtonClick(Sender: TObject);
begin
  HandleButtenEvent(beOnClick);
end;

procedure TMyForm.ButtonExit(Sender: TObject);
begin
  HandleButtenEvent(beOnExit);
end;

procedure TMyForm.HandleButtonEvent(EventType: TButtonEventType);
begin
  //use EventType to decide how to handle this
end;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM