Delphi 从可用表单列表中选择MainForm

Delphi 从可用表单列表中选择MainForm,delphi,Delphi,连接到数据库后,是否可以从“可用”表单列表中选择一个表单(作为主表单)?我有一个带有3个“可用”表单的datamodule。目前没有主表单。datamodule是首先创建的。现在,我想根据用户登录到的数据库选择表单,并使其成为主表单。这能做到吗?如何做到 主窗体被认为是通过调用Application.CreateForm创建的第一个窗体。因此,将选择逻辑添加到.dpr文件代码中,然后调用Application.CreateForm创建用户选择的任何表单 // .dpr code begin

连接到数据库后,是否可以从“可用”表单列表中选择一个表单(作为主表单)?我有一个带有3个“可用”表单的datamodule。目前没有主表单。datamodule是首先创建的。现在,我想根据用户登录到的数据库选择表单,并使其成为主表单。这能做到吗?如何做到

主窗体被认为是通过调用
Application.CreateForm
创建的第一个窗体。因此,将选择逻辑添加到.dpr文件代码中,然后调用
Application.CreateForm
创建用户选择的任何表单

// .dpr code
begin
  Application.Initialize;
  CreateMainForm;
  Application.Run;
end.
此处,
CreateMainForm
由您提供并实现用户表单选择。可能是这样的:

procedure CreateMainForm;
var
  Form: TForm;
  FormClass: TFormClass;
begin
  FormClass := ChooseMainFormClass;
  Application.CreateForm(FormClass, Form);
end;

同样,
chooseMInformClass
是由您提供的

在朝鲜半岛,你可以轻松地做类似的事情

program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {DM1: TDataModule},
  Unit3 in 'Unit3.pas' {Form2};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TDM1, DM1);
  case DM1.ChooseForm of
    1: Application.CreateForm(TForm1, Form1);
    else Application.CreateForm(TForm2, Form2);
  end;
  Application.Run;
end.

在本例中,首先创建datamodule。创建后,您可以使用datamodule中的逻辑。在datamodule中,我创建了一个公共函数,该函数返回一个整数以确定要加载的表单。(实际上,我不会依赖幻数)

它不必在DPR中。在调用Application.Run之前,在代码中的某个地方首次调用Application.CreateForm即可。@Uwe Yes。但是您肯定需要修改dpr文件。