形式 – 在Delphi中销毁表单并显示另一个表单的正确方法
发布时间:2020-12-15 04:24:53 所属栏目:大数据 来源:网络整理
导读:目前在我的程序中,我有一个Startup表单和一个Main表单.启动表单显示一两秒钟. 现在,我在计时器中有以下代码: frmStartup.Destroy; frmMain := TfrmMain.Create(Self); frmMain.Show; 现在,我不确定这是否是正确的方法..它有效,但在调用application.Terminat
目前在我的程序中,我有一个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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |