封装在DLL里的FORM被调用出来时,左上角无主程序的的图标?只有一个小白片?(50分)

  • 主题发起人 主题发起人 懒少爷
  • 开始时间 开始时间

懒少爷

Unregistered / Unconfirmed
GUEST, unregistred user!
在DLL里:
function OpenDefineDLTemplate(Ahandle:Thandle;Conn:TAdoConnection):longint;stdcall;
begin
Application.Handle:=Ahandle;
DefineDLTemplateFrm:=TDefineDLTemplateFrm.Create(application);
Result:=longint(DefineDLTemplateFrm);
DefineDLTemplateFrm.ADOQuery1.Connection:=Conn;

DefineDLTemplateFrm.ShowModal;
end;
在主程序里:
procedure TTraceMainFrm.DefineDateCodeLotNoFormat1Click(Sender: TObject);
type
TOpenDefineDLTemplate=function(Ahandle:Thandle;Conn:TAdoConnection):longint;stdcall;
var
LibHandle:THandle;
OpenDefineDLTemplate:TOpenDefineDLTemplate;
begin
LibHandle:=LoadLibrary('MRInputLib.dll');
try
if LibHandle=0 then
raise Exception.Create('Error occur!Can not load library "MRInputLib.DLL"');
@OpenDefineDLTemplate:=GetProcAddress(LibHandle,'OpenDefineDLTemplate');
if @OpenDefineDLTemplate=nil then
raise Exception.Create('Error occur! Can not open "Define Template"')
else
OpenDefineDLTemplate(Application.Handle,DataM.ADOConn);
finally
FreeLibrary(LibHandle);
end;

end;
 
Ahandle:Thandle 换成 Application 一起传进来
 
把Application传进来
 
Dll里面的窗体的图标跟Application和句柄都没有关系吧。
手动在设计的时候给该DLL窗体添加一个图标就可以了,不然在该窗体Create事件里面载入图标也可以的啊。
 
传递主程序的Application对象就可以了。
呵呵
 
我也遇到过个问题
在设计的时候直接为窗体指定个图标就好了
 
帮顶!

http://www.source520.com

站长开发推广同盟 站长朋友的终极驿站
同时拥有海量源码电子经典书籍下载

http://www.source520.com/search/search.asp

"编程.站长"论坛搜索引擎-----为中国站长注入动力!
 
后退
顶部