1

Delphi を使用してクイック アクセス バーの [その他のコマンド] ボタンをクリックした後に無効になっているリボン ボタンを有効にするにはどうすればよいですか?

4

2 に答える 2

8

これは既知のバグです

クオリティ セントラル レポート 70342:

リボン コントロールを使用する場合、クイック アクセス ツールバーを追加し、実行時にクイック アクセス ツールバーをカスタマイズするために [その他のコマンド] を選択すると、さまざまなリボン グループのアクション コンポーネントの多く (必ずしもすべてではない) が永久に無効になります。

詳細については、レポート自体を参照してください: 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 に答える