功能区控件

1 delphi ribbon-control

如何在使用Delphi 单击快速访问栏中的更多命令按钮后启用禁用的功能区按钮?

Mar*_*ema 8

这是一个已知的错误

Quality Central报告70342:

使用功能区控件时,如果添加快速访问工具栏,然后在运行时选择"更多命令"来自定义快速访问工具栏,则各种功能区组中的许多(尽管不总是全部)操作组件将永久禁用.

有关更多信息,请参阅报告本身:http: //qc.embarcadero.com/wc/qcmain.aspx?d = 70342

报告仍然是公开的,所以我可能也没有在D2011中解决,但质量中心可能会落后一点.

更新

报告指出没有解决方法,但Jack 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;
Run Code Online (Sandbox Code Playgroud)