如何调用dll中的窗体 ( 积分: 150 )

  • 主题发起人 主题发起人 xiaoa2002
  • 开始时间 开始时间
X

xiaoa2002

Unregistered / Unconfirmed
GUEST, unregistred user!
我想把一个通用窗体放在dll中,然后调用dll中的窗体。
刚接触dll,希望有哪位高手给贴出一段简单的源码。
如果带参数更好,谢谢指点。我的邮箱:xiaofan2@sohu.com
 
我想把一个通用窗体放在dll中,然后调用dll中的窗体。
刚接触dll,希望有哪位高手给贴出一段简单的源码。
如果带参数更好,谢谢指点。我的邮箱:xiaofan2@sohu.com
 
在下面:
http://www.delphibbs.com/keylife/iblog_show.asp?xid=12229
 
谢谢kk2000,我要得不是MDI窗体,呵呵,没说清楚
 
道理一样的。 晕
 
是不是修改参数就可以了?我试试,谢谢老兄了
 
再请教kk2000老兄,如果我想向dll的窗体中传参数(query,变量,返回参数),不知如何?请老兄再指点一二。积分保证送上。
 
调用dll中窗体可采用如下方法:
在dll中export一个FormShow方法,在这个方法中显示窗体,然后主程序调用这个方法。
不过需要注意的一点是,要让dll的application.handle等于要调用的程序的application.handle,不然会出错。
要出入参数的话,只需要为这个FormShow方法加上参数就行了。
错误之处,请指正。
 
给你个例子:
procedure showdll(AppApplication: Tapplication
APPhandle: THandle
AppSessions:
TSession
AppPanel: Tpanel
LogParam: array of string)
stdcall;//参数你就往里面传
var OldHandle: Thandle;
i: integer;
begin
OldHandle := Application.Handle;
Application.Handle := Apphandle;//原来程序的HANDLE
Session := AppSessions;
setlength(VARLOGPARAM, 12);
fm_main := Tfm_main.Create(nil);//DLL窗体
with fm_main do
begin
try
for i := 0 to 11 do
begin
varlogparam := logparam;
end;
dm := Tdm.create(Application);

showmodal;
finally
Free;
Application.Handle := OldHandle;
end;
end;
end;
 
谢谢三位兄弟的参与,问题已经解决。
这里还有一个关于dll的问题
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2755295
希望几位兄弟看看,谢谢
 
后退
顶部