2010-08-26 89 views

回答

8

這是一個已知的bug

質量中心報告70342:

當使用功能區控件,如果一個 增加了一個快速訪問工具欄,然後 在運行時選擇「更多命令」,以 自定義快速訪問工具欄, 許多(雖然不總是全部) 動作組件在各個功能區 組將永久變爲 禁用。

請參閱報告本身的詳細資料: http://qc.embarcadero.com/wc/qcmain.aspx?d=70342

該報告仍然是開放的,所以我可能不會一直在D2011無論是解決了,但是質量中心可以滯後有點落後。

更新

報告指出,沒有變通,但傑克Sudarev貼一個在評論:

procedure TForm6.ActionManager1StateChange(Sender: TObject); 
begin 
UpdateActions(ActionManager1); 
end; 

procedure TForm6.UpdateActions(ActionManager: TActionManager); 
var 
    i: Integer; 
begin 
    if not Assigned(ActionManager) then 
    Exit; 

    for i := 0 to ActionManager.ActionCount - 1 do 
    begin 
    (ActionManager.Actions[i] as TAction).Enabled := False; 
    (ActionManager.Actions[i] as TAction).Enabled := True;  
    end; 
end; 
+0

+1爲尋找解決方法而付出的額外努力 – 2010-08-26 18:29:49

+0

很好它正在工作非常感謝您 – Rajesh 2010-08-27 05:37:58

+0

請注意[QualityCentral現在已經被sh (https://community.embarcadero.com/blogs/entry/quality-keeps-moving-forward),所以你不能訪問'qc.embarcadero.com'鏈接了。如果您需要訪問舊的QC數據,請查看[QCScraper](http://www.uweraabe.de/Blog/2017/06/09/how-to-save-qualitycentral/)。 – 2017-06-09 17:54:40

1

這是我做過什麼:

procedure TmainTranslatform.MyUpdateActions(ActionManager: TActionManager); 
var 
    i: Integer; 
begin 
    if not Assigned(ActionManager) then 
    Exit; 

    for i := 0 to ActionManager.ActionCount - 1 do 
    begin 
    if (ActionManager.Actions[i] is TFileOpen) then 
    begin 
    (ActionManager.Actions[i] as TFileOpen).Enabled := False; 
    (ActionManager.Actions[i] as TFileOpen).Enabled := True; 

    end; 
    if (ActionManager.Actions[i] is TAction) then 
    begin 
    (ActionManager.Actions[i] as TAction).Enabled := False; 
    (ActionManager.Actions[i] as TAction).Enabled := True; 
    end; 
    end; 
end;