1

セカンドフォームを閉じた後、メインフォームにフォーカスを戻すことができません。

私がこれを行うとき:(メインフォームから) "Form1Main":

..
Form2Output.Show;
..

「Form2Output」から:

if (bNoWarnings = False) AND (Pos('-b',sExeOptions)=0)  then
begin
  if Application.MessageBox(PChar('Execute command line?'+ #13#10#13#10 + P.CommandLine), 'Execute?', MB_ICONQUESTION + MB_YESNO) = IDNO then Exit;
end;

メッセージダイアログの「スティール」フォーカスがメインフォームから表示されます(Form2Outputを閉じるとForm1Mainがバックグラウンドになります)。MessageDlgを表示しない場合(条件が満たされていない場合)、Form2Outputを閉じるときにメインフォームが正常に「再フォーカス」されます。私はラザロに比較的慣れていないので、どんな助けでも素晴らしいでしょう。

4

1 に答える 1

2

2番目の形式のをApplication.MainForm.BringToFront;入れます。OnCloseこの動作はObjectPascalに起因するものではなく、LCLのTApplication設計の特性です。

于 2011-08-24T20:20:39.793 に答える