【发布时间】:2014-09-18 18:57:16
【问题描述】:
我想与您确认一个问题。
场景如下。我们有两个系统。一个旧的,它是一个独立的可执行文件,另一个是全新的,带有包的模块化。
是否可以在独立应用程序中动态加载包?
需要在我的旧应用程序中加载具有表单并显示的包。
在我的测试中,问题是独立应用程序表单类中的加载包为零。
下面的代码说明了这种情况:
Procedure TForm3.LoadPackageTest;
Const
CClass = 'TAboutBox';
Var
phm: HModule;
LFormClass: TPersistentClass;
LForm: TCustomForm;
Begin
phm := LoadPackage('C:\_Dev\MyProjTest\forminbpl\BPLS\TestPack.bpl');
If phm <> 0 Then
Try
//the problem!!!
//In StandAlone application, not found class.
LFormClass := TPersistentClass(GetClass(CClass));
If Assigned(LFormClass) Then
Begin
LForm := TCustomForm(TComponentClass(LFormClass).Create(Nil));
LForm.ShowModal;
LForm.Free;
End;
Finally
UnloadPackage(phm);
End
Else
ShowMessage('Package not found');
End;
感激不尽。
【问题讨论】:
标签: forms delphi runtime packages