5

プロジェクト設定が inifile から読み込まれ、スプラッシュフォームが閉じるまで、ユーザーがマウスで RibbonApplicationMenuBar を選択できないようにするために、RibbonApplicationMenuBar に関連付けられた多くのメソッドを試しました。しかし、別の方法で指示されるまで、RibbonApplicationMenuBar を InActive にする機能はないようです。

ヘルプ ファイルには、RibbonApplicationMenuBar とヘルプ Wiki の多くのプロパティについて何も表示されないため、これを解決できません。

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 がアクティブになってクリック可能にならないようにするための試みです。

ありがとう、

明細書

4

1 に答える 1

0

すべてのリボン アクションを無効にするには、TRibbon.Enabled を False に設定するだけで十分です (XE3 でテスト済み)。最も簡単な方法は、設計時に False に設定することです。たとえば、スプラッシュ フォームの OnHide から True に戻します。すべてのバックグラウンド アクティビティが完了したときにのみ、スプラッシュを閉じます。

于 2013-07-10T21:47:08.340 に答える