4

我的 Delphi 应用程序中有一个 DevExpress VCL 功能区 应用程序不时进行一些更新,在此期间我需要确保用户没有做任何事情,所以我希望能够禁用所有控件功能区,但我无法让每个选项卡上的控件数量正常工作

不管我怎么做,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 回答