我在主程序中动态调用dll。为何在dll中创建窗体后立刻进入窗体的onshow过程中呢?代码如下:主程序:
ShowForm(Self.Handle, Self.cxpb_Downfile, Pchar('a'),Pchar(LoginUserName),Pchar(LoginUserPwd),pchar('a'),nil,nil,LoginUserJB,CurrentKC,WebClass);
其中Self.cxpb_Downfile是一个进度条控件,WebClass是自定义的一个类实例
dll文件:
procedure ShowForm(AHandle: THandle;cxpb_Downfile:TCXProgressBar;DllFileName, UserName, Password,UserGroupName,
ExtendParam1, ExtendParam2: PChar;UserJb:Integer;CurrentKC:String;WebClass:TWebClass); stdcall;
begin
Application.Handle := AHandle;
frm_BM := Tfrm_BM.Create(nil);//程序执行到此后,直接调用 Tfrm_BM.FormShow,未执行下列5行代码
frm_BM.cxpb_Downfile:=cxpb_Downfile;
frm_BM.LoginUserName:=UserName;
frm_BM.LoginUserPwd:=password;
frm_BM.LoginUserJB:=userjb;
frm_BM.WebClass:=WebClass;
frm_BM.CurrentKC:=CurrentKC;
frm_BM.ShowModal;
frm_BM.Free;
end;procedure Tfrm_BM.FormShow(Sender: TObject);
var
i:integer;
BMNums:Integer;
ServerMD5:String;
begin
GetTableInfoXX('GetTable_JBYY_Info','Table_JBYY');
GetTableInfoXX('GetTable_XB_Info','Table_Xb');
GetTableInfoXX('GetTable_MZ_Info','Table_MZ');
GetTableInfoXX('GetTable_ZY_Info','Table_ZY');
GetTableInfoXX('GetTable_WHCD_Info','Table_WHCD');
GetTableInfoXX('GetTable_BLCJZL_Info','Table_BLCJZL');
GetTableInfoXX('GetTable_CJPXZL_Info','Table_CJPXZL');
BMNums:=GetBMNum;
FillDataSet;
if ( BMNums<>Self.Stu_Set.RecordCount) then
begin
GetBMXX('0') ;
FillDataSet;
end;
end;
ShowForm(Self.Handle, Self.cxpb_Downfile, Pchar('a'),Pchar(LoginUserName),Pchar(LoginUserPwd),pchar('a'),nil,nil,LoginUserJB,CurrentKC,WebClass);
其中Self.cxpb_Downfile是一个进度条控件,WebClass是自定义的一个类实例
dll文件:
procedure ShowForm(AHandle: THandle;cxpb_Downfile:TCXProgressBar;DllFileName, UserName, Password,UserGroupName,
ExtendParam1, ExtendParam2: PChar;UserJb:Integer;CurrentKC:String;WebClass:TWebClass); stdcall;
begin
Application.Handle := AHandle;
frm_BM := Tfrm_BM.Create(nil);//程序执行到此后,直接调用 Tfrm_BM.FormShow,未执行下列5行代码
frm_BM.cxpb_Downfile:=cxpb_Downfile;
frm_BM.LoginUserName:=UserName;
frm_BM.LoginUserPwd:=password;
frm_BM.LoginUserJB:=userjb;
frm_BM.WebClass:=WebClass;
frm_BM.CurrentKC:=CurrentKC;
frm_BM.ShowModal;
frm_BM.Free;
end;procedure Tfrm_BM.FormShow(Sender: TObject);
var
i:integer;
BMNums:Integer;
ServerMD5:String;
begin
GetTableInfoXX('GetTable_JBYY_Info','Table_JBYY');
GetTableInfoXX('GetTable_XB_Info','Table_Xb');
GetTableInfoXX('GetTable_MZ_Info','Table_MZ');
GetTableInfoXX('GetTable_ZY_Info','Table_ZY');
GetTableInfoXX('GetTable_WHCD_Info','Table_WHCD');
GetTableInfoXX('GetTable_BLCJZL_Info','Table_BLCJZL');
GetTableInfoXX('GetTable_CJPXZL_Info','Table_CJPXZL');
BMNums:=GetBMNum;
FillDataSet;
if ( BMNums<>Self.Stu_Set.RecordCount) then
begin
GetBMXX('0') ;
FillDataSet;
end;
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货