Как сделать RibbonApplicationMenuBar неактивным / активным? - PullRequest
5 голосов
/ 13 сентября 2009

Я перепробовал множество методов, связанных с RibbonApplicationMenuBar, чтобы пользователь не мог выбрать RibbonApplicationMenuBar с помощью мыши, пока настройки проектов не загрузятся из inifile и не закроется форма всплеска. Но, кажется, ничто не помогает сделать RibbonApplicationMenuBar InActive, пока не будет сказано иначе.

Файл справки ничего не показывает о многих свойствах RibbonApplicationMenuBar и справочной вики, так что я не могу решить эту проблему.

procedure TMainForm.FormCreate( Sender: TObject );
begin
  // make theRibbonApplicationMenuBar1 inactive
  RibbonApplicationMenuBar1.Enabled := False;
  RibbonApplicationMenuBar1.Inactive := True;
  RibbonApplicationMenuBar1.Hide;
  RibbonApplicationMenuBar1.AutoFocus := False;
  // read application settings
  ReadIni( AIniFileFilename );
  // show a splash form
  FormSplash := TFormSplash.Create( MainForm );
  // FormSplash.Parent := MainForm;
  FormSplash.Position := poOwnerFormCenter;
  FormSplash.Show;
  FormSplash.Update;
end;


procedure TMainForm.FormShow( Sender: TObject );
begin
  // close the splash form
  FormSplash.RequestClose;
  // Activate the RibbonApplicationMenuBar
  RibbonApplicationMenuBar1.Enabled := True;
  RibbonApplicationMenuBar1.Inactive := False;
  if RibbonApplicationMenuBar1.CanFocus then
    RibbonApplicationMenuBar1.SetFocus;
  RibbonApplicationMenuBar1.AutoFocus := True;
  RibbonApplicationMenuBar1.SelectApplicationButton;
  RibbonApplicationMenuBar1.Show;
end;

Если RibbonApplicationMenuBar неактивен, пользователь может выбрать RibbonApplicationMenuBar, прежде чем он будет готов к выбору. Любые предложения приветствуются. Я знаю, что все методы, показанные здесь, не являются правильными или, возможно, не в порядке ... это просто моя попытка предотвратить активацию RibbonApplicationMenuBar и ее нажатие до тех пор, пока форма-заставка не закроется.

Спасибо

Bill

1 Ответ

0 голосов
/ 11 июля 2013

Достаточно установить TRibbon.Enabled в False, чтобы отключить все действия ленты (протестировано с XE3). Самый простой способ - установить значение False во время разработки. Установите значение True, например, из OnHide вашей формы-заставки. Закрыть всплеск, только когда все фоновые действия выполнены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...