封装在DLL里的FORM被调用出来时,左上角无主程序的的图 找服装进销存表格
记账软件版1楼: 在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;
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;
2楼: Ahandle:Thandle 换成 Application 一起传进来 如服装进销存表格
3楼: 把Application传进来
4楼: Dll里面的窗体的图标跟Application和句柄都没有关系吧。
手动在设计的时候给该DLL窗体添加一个图标就可以了,不然在该窗体Create事件里面载入图标也可以的啊。
5楼: 传递主程序的Application对象就可以了。
呵呵
6楼: 我也遇到过个问题
在设计的时候直接为窗体指定个图标就好了
记账软件版7楼: 帮顶!
http://www.source520.com
站长开发推广同盟 站长朋友的终极驿站
同时拥有海量源码电子经典书籍下载
http://www.source520.com/search/search.asp
"编程.站长"论坛搜索引擎-----为中国站长注入动力!