运行已编译的程序时出现错误。我已经采取了我能想到的所有预防措施来防止出现错误,例如在隐藏或集中它们之前启用表单。该应用程序显示一个DimmerForm
(灰色渐变覆盖),然后NewFileForm
在覆盖的顶部显示一个。完成它的NewFileForm
工作并确定要制作的文件并tabsheet
在页面控件中创建一个新文件MainForm
并显示新创建的选项卡表。到目前为止所有这些工作(我可以在NewFileForm
关闭之前中断并且发生任何错误并看到标签表已创建并成功显示)。然后NewFileForm
关闭,这再次正常工作。
当任何东西试图将焦点设置回MainForm
. 隐藏DimmerForm
,或单击MainForm
,或将焦点设置到MainForm
直通代码都会导致出现错误消息。将代码放在 { try
, except
, end
} 中也不会阻止错误消息。我已经搜索了代码中可能由焦点触发的所有其他方法,MainForm
并且在错误发生之前没有输入任何其他方法(所以不能导致它)。
我在我的应用程序的以前版本中编写了几乎完全相同的代码,然后决定从头开始对其进行重组。该应用程序的先前版本在表单聚焦方面工作顺利。
这是打开的代码NewFileForm
:
procedure TMainForm.NewFilesToolButtonClick(Sender: TObject);
begin
ShowDimmer;
NewFileForm.ShowModal;
HideDimmer;
end;
这是显示调光器形式的代码:
procedure ShowDimmer;
begin
// Enable to prevent errors
DimmerForm.Enabled := true;
// Hide dimmer form and show mainform
DimmerForm.Show;
end;
这是隐藏调光器形式的代码:
procedure HideDimmer;
begin
// Enable to prevent errors
DimmerForm.Enabled := true;
MainForm.Enabled := true;
// Hide dimmer form and show mainform
DimmerForm.Hide;
MainForm.SetFocus;
end;