MessageBox из вторичной формы переводит основную форму в фоновый режим / не в фокусе - PullRequest
1 голос
/ 24 августа 2011

Я не могу вернуть фокус на основную форму после закрытия второй формы.

Когда я делаю это: (Из основной формы) "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;

Похоже, диалог сообщений «крадет» фокус у главной формы (Form1Main переходит в фон при закрытии Form2Output). Если я не показываю MessageDlg (условия не выполняются), основная форма просто «перефокусируется» при закрытии Form2Output. Я относительно новичок в Lazarus, и любая помощь будет великолепна ..

1 Ответ

2 голосов
/ 25 августа 2011

Положите Application.MainForm.BringToFront; в OnClose второй формы.Такое поведение не относится к Object Pascal, это особенность разработки TApplication для LCL.

...