delphi – 如何避免两次调用Application.CreateForm?
发布时间:2020-12-15 09:30:54 所属栏目:大数据 来源:网络整理
导读:我偶然发现了这个页面 Why shouldn’t I call Application.CreateForm. 现在我有一些像这样的代码: SplashForm := TSplashForm.Create(Application);SplashForm.Show;SplashForm.Update; // force updateApplication.Initialize;Application.CreateForm(TCl
我偶然发现了这个页面
Why shouldn’t I call Application.CreateForm.
现在我有一些像这样的代码: SplashForm := TSplashForm.Create(Application); SplashForm.Show; SplashForm.Update; // force update Application.Initialize; Application.CreateForm(TClientData,ClientData); SplashForm.Update; // force update Application.CreateForm(TClientMainForm,ClientMainForm); Application.ShowHint := True; Application.Run; ClientMainForm.ServerConnected := false; FreeAndNil(ClientMainForm); FreeAndNil(ClientData); 首先创建一个splashform,然后创建一个datamodule并持续主窗体.页面说不应该调用Application.CreateForm两次.上面的代码应该改变吗? 解决方法
多次使用Application.CreateForm没有任何问题.但是这会为每种形式引入全局变量,这些变量可能是代码气味.
不幸的是,IDE为每个表单创建一个.虽然你可以删除它们,如果你愿意. 更好的方法是在需要时创建表单,并在准备好表单时将其释放.因此,您只能将Application.CreateForm用于主窗体. 主数据模块可以由主表单创建.但它也可以是全球性的,只是品味问题. 因此,要回答这个问题,可以通过在本地创建和发布表单来避免Application.CreateForm. 文章提到了Application.CreateForm的副作用(第一个完成的表单是主窗体). 所以为了避免任何讨厌,你应该将yoursef限制为一次通话.这只使用一个全局表单完成. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- laravel框架详解
- CPAN更改perl模块下载路径
- VB2008控件数组全解(绝对经典,代码为本人自行设计并调试运行
- delphi – 在类构造函数中完成类注册时未调用的类构造函数
- java – Spring Data JPA方法REST:Enum to Integer转换
- Causedby:groovy.lang.MissingPropertyException:Nosuchpro
- Love2D:在love.load中创建变量而不是在main.lua文件的顶部
- (4)图像特征提取算法:LBP特征
- 优化 – Lua挑战:可以提高mandelbrot实现的性能吗?
- 数据挖掘中的模式发现(五)挖掘多样频繁模式