我有一個MDI應用程序,我正在使用TActionManager來管理我的應用程序中的操作,這也意味着它包含了我的MDIChild窗體的操作。MDI應用程序中的TActionManager。丟失操作
下面是一個簡單爲例重現我的問題:
創建一個新的VCL窗體應用程序有2種形式。 Form1 & Form2 通過Form1拖放一個TButton和一個TActionManager。 使用TActionManager的彈出式編輯器創建2個TA。 爲Form1設置FormStyle:= fsMDIForm。 爲Form2設置FormStyle:= fsMDIChild。
將此代碼添加到通訊員事件:
// Form1
procedure TForm1.Action1Execute(Sender: TObject);
begin
ShowMessage('Action1');
end;
procedure TForm1.Action2Execute(Sender: TObject);
begin
ShowMessage('Action2');
end;
procedure TForm1.Button1Click(Sender: TObject);
var
oForm2: TForm2;
begin
oForm2 := TForm2.Create(Application);
end;
// Form 2
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
跌幅超窗體2一TActionToolBar。 使用TActionManager彈出式編輯器在此TActionToolBar上放置Action1和Action2。 保存&運行。 單擊Form1上的按鈕以顯示Form2。 一切按預期工作。現在關閉Form2並將其打開。 操作失蹤...
有沒有辦法避免失去我的行動知道我真的需要使用TActionManager?
那麼我的問題比這個更大,因爲我需要每個窗體上的TActionManager來允許自定義ToolBars,而這些組件是不可能的。我會用TMS組件來做。 – CharleyXIV