2010-08-26 90 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;