4

Delphi アプリに DevExpress VCL リボンがあります。ときどきアプリが更新を行っています。その間、ユーザーが何もしないようにする必要があるため、Delphi アプリのすべてのコントロールを無効にできるようにしたいと考えています。リボンが表示されますが、各タブのコントロールの数が機能しません

ComponentCount は、どのようにしても 0 を返しますが、コントロールは表示されます。私のテストコードは次のようになります。

procedure TfrmMain.RibbonDisable(var aMessage: TMessage);
var
  i: integer;
begin
  try
    for i := 0 to ribMain.TabCount - 1 do
      begin
        ribMain.Tabs.Items[i].Active := True;
        ShowMessage(IntToStr(ribMain.ActiveTab.ComponentCount));
      end;
  except
    on E:exception do
      Logfile.Error('frmMain.RibbonDisable: ' + E.Message);
  end;
end;
4

1 に答える 1

5

TdxRibbon更新の実行中に全体を無効にするだけです。

ribMain.Enabled := False;

または、本当にタブ項目のみを無効にしたい場合は、次を使用します。

procedure TForm1.Button1Click(Sender: TObject);
var
  I: Integer;
begin
  for I := 0 to ribMain.BarManager.ItemCount - 1 do
    ribMain.BarManager.Items[I].Enabled := False;
end;

表示されるものではなく、アクションを無効にすることは、ほとんどすべてのツールバー コントロールに共通しています。

于 2012-04-06T08:54:30.673 に答える