是否可以从"可用"的列表中选择一个表单(作为主表单)。连接到数据库后的表单?我有一个3'可用的数据模块' form.No mainform暂时.Datamodule首先创建。现在,我想根据用户登录的数据库选择表单,并使其成为mainform。可以这样做,怎么做?
答案 0 :(得分:8)
您可以轻松地在DPR中执行类似的操作。
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.
在此示例中,您首先要创建数据模块。创建它时,您可以使用数据模块中的逻辑。在数据模块中,我创建了一个公共函数,它返回一个整数来确定要加载的表单。 (在实践中,我不会依赖魔法数字)
答案 1 :(得分:5)
主要表单被视为通过调用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;
同样,ChooseMainFormClass
由您提供。