我有一个功能,可以在应用程序启动之前检查设置和权限,如果一切顺利,它会选择要运行的版本并相应地更改主表单。
function SomeControlFunction: Boolean;
var
lMainForm : TForm;
begin
if SomePermission then
Application.CreateForm(TUForm1, lMainForm)
else
Application.CreateForm(TUForm2, lMainForm);
end;
项目.dpr
Application.Initialize;
if SomeControlFunction then
Application.Run;
不幸的是,每次我在项目中创建新表单时,它都会自动添加到 Project.dpr
中,而我每次都必须将其删除。有什么方法可以禁用此行为,或者整个过程是否错误,我应该以不同的方式运行应用程序?
Application.Initialize;
if SomeControlFunction then
Application.CreateForm(TUNewForm, UNewForm);
Application.Run;
最佳答案
有一种解决方法可以防止 IDE 以这种方式更改 dpr 文件。
看来 Delphi IDE 将显式查找 dpr 文件中使用 Vcl.Forms
中的全局变量 Application
的位置,并相应地添加 CreateForm
调用。
dpr 文件中的标准模板代码如下所示:
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm1, Form1);
<-- new forms will be added here automatically
Application.Run;
如果您使用“别名”变量 - 比如说 App
- 相反,IDE 不会干扰。将 dpr 文件中的现有代码替换为以下内容:
var
App: TApplication;
begin
App := Application;
App.Initialize;
if SomeControlFunction then
App.Run;
end.
添加新表单现在不会自动在您的 dpr 文件中添加 CreateForm
调用。
关于delphi - 使用新表单禁用 Application.CreateForm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48985532/