Tri*_*ber 3 delphi delphi-10.2-tokyo
我有一个在应用程序启动之前检查设置和权限的函数,如果一切都通过,它会选择要运行的版本并相应地更改主窗体.
function SomeControlFunction: Boolean;
var
lMainForm : TForm;
begin
if SomePermission then
Application.CreateForm(TUForm1, lMainForm)
else
Application.CreateForm(TUForm2, lMainForm);
end;
Run Code Online (Sandbox Code Playgroud)
Project.dpr
Application.Initialize;
if SomeControlFunction then
Application.Run;
Run Code Online (Sandbox Code Playgroud)
不幸的是,每次我在项目中创建一个新表单时,它都会自动添加Project.dpr,我每次都要删除它.有没有办法禁用此行为或整个过程是错误的,我应该以不同的方式运行应用程序?
Application.Initialize;
if SomeControlFunction then
Application.CreateForm(TUNewForm, UNewForm);
Application.Run;
Run Code Online (Sandbox Code Playgroud)
有一种方法可以阻止IDE以这种方式更改dpr文件.
看来,德尔福IDE会明确地寻找其中的全局变量的地方Application从Vcl.Forms在DPR文件使用,并相应地增加了CreateForm通话.
如果你使用'alias'变量 - 比方说App- IDE将不会干扰.用以下内容替换dpr文件中的现有代码:
var
App: TApplication;
begin
App := Application;
App.Initialize;
if SomeControlFunction then
App.Run;
end.
Run Code Online (Sandbox Code Playgroud)
添加新表单现在不会自动CreateForm在dpr文件中添加调用.
有什么办法可以禁用这种行为吗?
在选项对话框中,选择Form Designer节点,然后取消选中Auto create forms & data modules选项。
此选项的文档说明:
切换是否自动创建表单。取消选中时,在第一个表单之后添加到项目的表单将放入可用表单列表而不是自动创建列表。您可以通过选择“项目”>“选项”>“表单”来更改每个表单的列出位置。
文档没有告诉您的是,当您将新表单添加到尚未包含至少一个自动创建表单的项目时,将忽略此选项。所以它可能对你不会很有用。
顺便说一下,SomeControlFunction不设置返回值。
| 归档时间: |
|
| 查看次数: |
1172 次 |
| 最近记录: |