来自辅助表单的MessageBox使主表单转到背景/非聚焦

时间:2011-08-24 16:50:58

标签: messagebox lazarus lost-focus

关闭第二张表格后,我无法将注意力转回主表格。

当我这样做时: (从主表格)“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;

在主窗体中出现Message Dialog'窃取'焦点(Form1Main在关闭Form2Output时转到后台)。如果我没有显示MessageDlg(条件未满足),则在关闭Form2Output时,主窗体“重新聚焦”就好了。我对拉撒路比较陌生,任何帮助都会很棒......

1 个答案:

答案 0 :(得分:2)

Application.MainForm.BringToFront;放在第二个表单的OnClose中。这种行为不能归因于Object Pascal,它是LCL的TApplication设计的一个特点。