工程文件 program Project1; uses Forms, Unit1 in 'Unit1.pas' {Form1}, Unit2 in 'Unit2.pas' {Form2}; {$R *.res} begin Application.Initialize; Application.MainFormOnTaskbar := True; Application.CreateForm(TForm1, Form1); Application.Run; end. unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm2 = class(TForm) private { Private declarations } public { Public declarations } end; var Form2: TForm2; implementation {$R *.dfm} initialization RegisterClass(TForm2); finalization UnRegisterClass(TForm2); end. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; FForm2: TForm; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var LFormClass: TFormClass; begin LFormClass := TFormClass(GetClass('TForm2')); if not Assigned(LFormClass) then Exit; FForm2 := LFormClass.Create(nil); FForm2.Show; end; end. 采用上述方法,利用类引用,可以根据用户动态输入的类名动态创建窗体。