0
IM上有許多使用動作管理行動(超過50個)德爾菲7應用程序的工作。 並跟蹤每一個動作,我有現在..as我有如果其他如下面的代碼..使用「情況」,而不是「如果其他」在行動經理操作
procedure TMainForm.OnActionExecute(Sender: TObject);
var
Action : TBasicAction;
begin
Action := Sender as TBasicAction;
if (Action is TAction) and not TAction(Action).Enabled then exit;
if Action = SQLQueryAction then
begin
//do somthing
end
else if (Action = NewSurveyAction) then
begin
//do somthing
end
else if ...
..
..
//lots of actions with if else latr..
end;// of OnActionExecute....
任何一個可以告訴我
如何使用「案」像
case actions of SQLQueryAction : //do somthing; newsurveyaction : //do somthing; //lots more actions to go.. end; //of case.
可能有其他原因,你的設置,但你也可以指定OnExecute每一個人的行動和跳躍的情況下聲明在一起。如果多個動作需要相同的執行,他們可以共享相同的事件處理程序。我曾參與過一個項目,該項目使用梅森的標籤方法,並且很難追蹤每件事物是如何聯繫起來的。我們現在使用單獨的OnExecute處理程序執行每個操作,並且只需單擊一次並跳至實際執行代碼即可。 – 2011-12-28 07:09:15
@MarkElder ...是的,我試過了,就像你說的「它更好」..我同意跳到真正的執行代碼更好..但因爲我有很多行動(50+),我想把他們放在一個地方(單一程序)來追蹤他們。 – PresleyDias 2011-12-28 07:50:21
我可以理解這種動機。每當我們需要驗證或創建一個我們需要以下內容的操作時,發生了什麼事情。 1)打開動作並查看Tag屬性以查看分配的編號。 2)轉到常量文件並搜索該數字以查找常數名稱3)在主要case語句中搜索該常量名稱4)跳轉到case語句中調用的函數。最後,我們沒有用主功能保存任何內容 - 尤其是因爲無論如何,所有事情都以自己的功能結束。它最終變得更容易出錯。 (我有~150個動作) – 2011-12-28 08:31:52