[英]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
取消連接超時為 30 秒。
我正在連接到 SQL Server 。
這在我的 mainForm 中有:
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;
然而,有時我的連接對話框無法顯示,應用程序在后台靜默運行。我必須使用 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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.