目前在我的程序中,我有一个Startup表单和一个Main表单.启动表单显示一两秒钟.
现在,我在计时器中有以下代码:
frmStartup.Destroy; frmMain := TfrmMain.Create(Self); frmMain.Show;
现在,我不确定这是否是正确的方法..它有效,但在调用application.Terminate();
我收到一条访问违规消息,导致我相信我在破坏启动表单时做错了什么..
如果有人能够显示正确的程序来做我想要的(非模态),我将不胜感激.
提前致谢,
编辑:
Action := caFree;
进入frmStartup.formClose方法.
解决方法
不要使用Application.CreateForm创建frmStartup.在那里创建的第一个表单将成为应用程序的主要表单,如果是frmStartup,则会在应用程序知识之外将其销毁.
而是在项目源(.dpr)文件中使用普通的Form.Create:
var frmStartup: TfrmStartup; begin Application.Initialize; Application.MainFormOnTaskBar := True; frmStartup := TfrmStartup.Create(nil); // No owner assigned here! frmStartup.Show; frmStartup.Update; Application.CreateForm(TfrmMain,frmMain); // Let Application have this for main form // Delay here if needed frmfrmStartup.Free; Application.Run; end.