我有多个窗体,同继承于Tform
Tform1=class(TForm)
Tform2=class(TForm)
Tform3class(TForm)
Tform4class(TForm)
.....能不能做一个函数,传递窗体的类名(如TForm1),通过类名创建这些窗体的实例?
function CreateForm(...);
Tform1=class(TForm)
Tform2=class(TForm)
Tform3class(TForm)
Tform4class(TForm)
.....能不能做一个函数,传递窗体的类名(如TForm1),通过类名创建这些窗体的实例?
function CreateForm(...);
var
PackageModule: HModule;
AClass: TPersistentClass;
begin
PackageModule := LoadPackage('Package1.bpl');
if PackageModule <> 0 then
begin
AClass := GetClass('TForm2'); if AClass <> nil then
with TComponentClass(AClass).Create(Application)
as TCustomForm do
begin
ShowModal;
Free;
end; UnloadPackage(PackageModule);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
PackageModule: HModule;
AClass: TPersistentClass;
begin
PackageModule := LoadPackage('Package1.bpl');
if PackageModule <> 0 then
begin
AClass := GetClass('TForm2'); if AClass <> nil then
with TComponentClass(AClass).Create(Application)
as TCustomForm do
begin
ShowModal;
Free;
end; UnloadPackage(PackageModule);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
PackageModule: HModule;
AClass: TPersistentClass;
begin
PackageModule := LoadPackage('Package1.bpl');
if PackageModule <> 0 then
begin
AClass := GetClass('TForm2'); if AClass <> nil then
with TComponentClass(AClass).Create(Application)
as TCustomForm do
begin
ShowModal;
Free;
end; UnloadPackage(PackageModule);
end;
end;
http://community.borland.com/article/0,1410,27178,00.html