应用程序执行但有时无法显示
Application executes but sometimes fails to show
这是项目来源:
Application.Initialize;
Application.MainFormOnTaskbar := False;
Application.ShowMainForm := False;
Application.CreateForm(TMain_Form, Main_Form);
Application.CreateForm(TData_Module, Data_Module);
Application.CreateForm(TForm5, Form5);
Login;
Application.Run;
创建顺序是:
Main_Form,Data_Module,Form5
Uniconnection 超时为 30 秒。
我正在连接到 SQL 服务器。
这是我的主窗体:
procedure Login;
begin
with TUniConnectDialog.Create(nil) do
try
try
Application.MainForm.Hide;
if not Data_Module.UniConnectDialog1.Execute then
Application.Terminate
else
Application.MainForm.Show
finally
Free;
end;
except
on E : Exception do begin
ShowMessage('Exception class name = '+E.ClassName);
ShowMessage('Exception message = '+E.Message);
end;
end;
end;
然而,有时我的连接对话框无法显示并且应用程序运行
默默地在background.I中不得不用Windows任务管理器来结束它。
我尝试使用 eureka 对其进行调试,但它没有显示任何错误。
应用程序执行但无法显示。
十分之三的情况可能会发生这种情况。
现在我不知道我在这里做错了什么。
编辑:
procedure Login;
begin
with Data_Module.UniConnectDialog1.Create(nil) do
try
Application.MainForm.Hide;
if not Data_Module.UniConnectDialog1.Execute then
Application.Terminate
else
Application.MainForm.Show
finally
// Free;
end;
end;
编辑 2:这也不起作用。
这不是一个完整的解决方案(或者可能 - 很难说)但更正了主要问题编辑中的错误。不幸的是,我无法在评论中做到这一点。
procedure Login;
begin
// with Data_Module.UniConnectDialog1.Create(nil) do
// 1) Don't use 'with' - it just creates ambiguity
// 2) You probably don't need to create the dialog
// 3) If you do the format should be:
// Data_Module.UniConnectDialog1 := TUniConnectDialog.Create(???)
try
Application.MainForm.Hide;
if not Data_Module.UniConnectDialog1.Execute then
Application.Terminate
else
Application.MainForm.Show
finally
// Free;
end;
end;
这是项目来源:
Application.Initialize;
Application.MainFormOnTaskbar := False;
Application.ShowMainForm := False;
Application.CreateForm(TMain_Form, Main_Form);
Application.CreateForm(TData_Module, Data_Module);
Application.CreateForm(TForm5, Form5);
Login;
Application.Run;
创建顺序是: Main_Form,Data_Module,Form5
Uniconnection 超时为 30 秒。
我正在连接到 SQL 服务器。
这是我的主窗体:
procedure Login;
begin
with TUniConnectDialog.Create(nil) do
try
try
Application.MainForm.Hide;
if not Data_Module.UniConnectDialog1.Execute then
Application.Terminate
else
Application.MainForm.Show
finally
Free;
end;
except
on E : Exception do begin
ShowMessage('Exception class name = '+E.ClassName);
ShowMessage('Exception message = '+E.Message);
end;
end;
end;
然而,有时我的连接对话框无法显示并且应用程序运行 默默地在background.I中不得不用Windows任务管理器来结束它。
我尝试使用 eureka 对其进行调试,但它没有显示任何错误。 应用程序执行但无法显示。 十分之三的情况可能会发生这种情况。 现在我不知道我在这里做错了什么。
编辑:
procedure Login;
begin
with Data_Module.UniConnectDialog1.Create(nil) do
try
Application.MainForm.Hide;
if not Data_Module.UniConnectDialog1.Execute then
Application.Terminate
else
Application.MainForm.Show
finally
// Free;
end;
end;
编辑 2:这也不起作用。
这不是一个完整的解决方案(或者可能 - 很难说)但更正了主要问题编辑中的错误。不幸的是,我无法在评论中做到这一点。
procedure Login;
begin
// with Data_Module.UniConnectDialog1.Create(nil) do
// 1) Don't use 'with' - it just creates ambiguity
// 2) You probably don't need to create the dialog
// 3) If you do the format should be:
// Data_Module.UniConnectDialog1 := TUniConnectDialog.Create(???)
try
Application.MainForm.Hide;
if not Data_Module.UniConnectDialog1.Execute then
Application.Terminate
else
Application.MainForm.Show
finally
// Free;
end;
end;