主程序调用bpl中的窗体一切正常,但是把主程序窗体改成MDI,包里的窗体改成Child,就不行了,报错:cannot create form.no MDI forms are currently active.主窗体是MDI没问题呀..思路是打开bpl包,调用接口函数现实窗体,调用代码如下:
procedure Tfrm_main.Button2Click(Sender: TObject);
var frm: Tform;
ModuleInstance:THandle;
pkgobject: THandle;
Params: TStrings;
CreateNewObject: TCreateNewObject;
begin
pkgobject:=LoadPackage('Package1.bpl');
@CreateNewObject := GetProcAddress(pkgObject,'CreateF');
if @CreateNewObject=nil then
showmessage('加载失败')
else
frm := CreateNewObject(Params, Params);
if frm=nil then
showmessage('出错!')
else
frm.Show接口函数如下:
var
Form1: TForm1;
FUserId:string;
function CreateF(aParams:Tstrings):TForm;
exports CreateF;
implementation
function CreateF(aParams:Tstrings):TForm;
begin
Result:= TForm1.Create(Application);
Result.Visible:= true;
end;
请教有什么问题
procedure Tfrm_main.Button2Click(Sender: TObject);
var frm: Tform;
ModuleInstance:THandle;
pkgobject: THandle;
Params: TStrings;
CreateNewObject: TCreateNewObject;
begin
pkgobject:=LoadPackage('Package1.bpl');
@CreateNewObject := GetProcAddress(pkgObject,'CreateF');
if @CreateNewObject=nil then
showmessage('加载失败')
else
frm := CreateNewObject(Params, Params);
if frm=nil then
showmessage('出错!')
else
frm.Show接口函数如下:
var
Form1: TForm1;
FUserId:string;
function CreateF(aParams:Tstrings):TForm;
exports CreateF;
implementation
function CreateF(aParams:Tstrings):TForm;
begin
Result:= TForm1.Create(Application);
Result.Visible:= true;
end;
请教有什么问题
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货