use*_*348 3 forms delphi delphi-10.1-berlin
在Delphi 10.1 Berlin IDE中,使用VCL Form应用程序项目,在Project Options对话框中,我有以下设置:
现在我希望在formOptions表格之前创建FormMain表格,同时将FormMain表格保留为主表格.原因是:主窗体可以在其FormCreate过程中加载数据(formOptions仍未创建),但是为了处理这些数据,它需要formOptions表单中的设置.
但是一旦我将formOptions项目拖到列表的顶部,上面的主要形式组合框也会变为formOptions!
那么如何在表格作为主表格的同时在表格formOptions之前制作表格?FormMainFormMain
Rem*_*eau 11
TForm创建的第一个Application.CreateForm()变为VCL Application.MainForm,并且无法更改.因此,在CreateForm()分配之前,您需要执行任何初始化MainForm.
您有两种选择:
取出formOptions从自动创建列表(从而消除了产生CreateForm()它的呼叫),然后在代码中创建它自己手动. CreateForm()在MainForm完全创建之前不会分配它,因此您可以通过以下两种方式之一实际处理:
一个.直接在项目的.dpr文件中:
Application.Initialize;
Application.MainFormOnTaskbar := True;
formOptions := TFormOptions.Create(Application);
Application.CreateForm(TFormMain, FormMain);
Application.Run;
Run Code Online (Sandbox Code Playgroud)
湾 在MainForm的OnCreate活动中:
procedure TFormMain.FormCreate(Sender: TObject);
begin
formOptions := TFormOptions.Create(Application); // or even Self
end;
Run Code Online (Sandbox Code Playgroud)将您的共享设置移动到TDataModule(或甚至是独立的类),然后在创建任一表单之前(自动)创建该对象.FormMain然后formOptions可以在需要时从该对象检索其设置:
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TSettingsDM, SettingsDM);
Application.CreateForm(TFormMain, FormMain);
Application.CreateForm(TFormOptions, formOptions);
Application.Run;
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
475 次 |
| 最近记录: |