通过字符串创建窗体类对象
1、需要在程序初始化的时候将类注册,注册到对象 RegGroups:(TRegGroups)中,以便查找。
注册类使用的函数:RegisterClass ,窗体初始化操作放在initialization 中。
unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TfrmReg = class(TForm) private { Private declarations } public { Public declarations } end; var frmReg: TfrmReg; implementation {$R *.dfm} initialization //初始化开始 RegisterClass(TfrmReg) ; //注册类对象 end.
2、利用FindClass根据类名来查找类对象。
//根据类名创建对象 procedure TForm1.Button1Click(Sender: TObject); var FormClass : Tformclass ; Form : TForm ; begin FormClass := Tformclass(findclass(‘TfrmReg‘)) ; Application.Createform(FormClass,Form) ; Form.Show ; end;
initialization —— 在单元中放在文件结尾前,,包含用来初始化单元的代码,它在主程序运行前运行并且只运行一次。
finalization —— 在单元中放在 initialization 和 end. 之间,包含了单元退出时的代码。在程序退出时运行并且只运行一次。
Delphi 通过字符串实例化类