如何启用使用 Delphi 在快速访问栏中单击更多命令按钮后禁用的功能区按钮?
问问题
1274 次
2 回答
8
这是一个已知的错误
质量中心报告 70342:
使用 Ribbon Controls 时,如果添加快速访问工具栏,然后在运行时选择“更多命令”来自定义快速访问工具栏,则各种功能区组中的许多(尽管不是全部)操作组件将永久禁用。
有关更多信息,请参阅报告本身:http: //qc.embarcadero.com/wc/qcmain.aspx?d= 70342
该报告仍处于打开状态,所以我可能在 D2011 中也没有解决,但 Quality Central 可能有点落后。
更新
该报告指出没有解决方法,但 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;
于 2010-08-26T17:55:23.680 回答
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;
于 2011-06-19T20:07:12.437 回答