DLL中的窗体调用问题(100分)

  • 主题发起人 主题发起人 LGXing
  • 开始时间 开始时间
L

LGXing

Unregistered / Unconfirmed
GUEST, unregistred user!
主窗体动态调用DLL中的窗体,显示操作正常,
但是在关闭调用的窗口后,主窗体随之跑到了后台
好像是最小化又失去了焦点,不过需要点击任务栏
图标三四下,才会恢复,不只是何原因?而另一个
程序却无此问题!
 
你调用DLL传递的一定是Application.Handle,把这个换成当前主窗体的Handle就行了.
 
不行老兄,我曾试过,还是一样
 
看看你的调用Dll的代码.
 
你是不是李国星?
 
Procedure ShowDLL(DLLFile,DLLFunction:String);
Type
TDLLFunc=Function(AppHdl:THandle; ADODBCon:TADOConnection):Integer; StdCall;
Var
Hdl:THandle;
DLLFunc:TDLLFunc;
Begin
Hdl:=LoadLibrary(PChar(DLLFile));
Try
If Hdl>0 Then
Begin
DLLFunc:=GetProcAddress(Hdl,PChar(DLLFunction));
If Assigned(DLLFunc) Then DLLFunc(Application.MainForm.Handle,ADOCon);
End
Else
Application.MessageBox(PChar('"'+DLLFile+'":'+SysErrorMessage(GetLastError)),'错误',MB_Ok+MB_IconError);
Finally
FreeLibrary(Hdl);
End;
End;
哈,是呀
 
不好意思,编译多次,现在可以了,不过我折腾了半天,换了好几次
application.handle<=>Application.mainform.handle,还有从datamodle中的定义移到
主窗体中,而且都是Build,但是直到现在才好使
ok,发红包
 
接受答案了.
 
后退
顶部