实现了调用封装FORM的DLL, 但是不能实现让被调用DLL的FORM显示在主调程序一个区域里,比如一个PANEL作为这个DLL里窗体的Parent,窗体不管多大,就显示在PANEL里,PANEL作为DLL里窗体的客户区,试了一个例子:传入PANEL的HANDLE,窗体是可以显示,达到要求,但是窗体对外部不响应了,不知道为什么,请教各位高手
procedure showSysLog(AHandle :TApplication;ACaption :pChar; ParentHandle :TPanel);stdcall;export;
var
dllForm : TFrmSysLog;
begin
Application.Handle := AHandle;
dllForm := TFrmSysLog.Create(Application);
try
dllForm.Caption := ACaption;
Windows.SetParent(dllForm.Handle, AParentHandle);
dllForm.Align := alClient;
dllForm.ShowModal;
finally
dllForm.Free;
end;
end;
procedure showSysLog(AHandle :TApplication;ACaption :pChar; ParentHandle :TPanel);stdcall;export;
var
dllForm : TFrmSysLog;
begin
Application.Handle := AHandle;
dllForm := TFrmSysLog.Create(Application);
try
dllForm.Caption := ACaption;
Windows.SetParent(dllForm.Handle, AParentHandle);
dllForm.Align := alClient;
dllForm.ShowModal;
finally
dllForm.Free;
end;
end;
解决方案 »
- [新手求助]dbgrid中插入记录时的问题
- widestring类型丢失字符串
- 求助:使用BDE的问题,Query在执行的时候都提示要输入用户和密码?
- DBGridEH的一个问题~~
- 我的课件给老师损的一文不值,真的这么垃圾么,大家帮忙看看,给点意见,伤心中
- 删除文件夹的一个老问题,呵呵,在线等.
- 关于CHART的一个刷新问题
- 一直很正常,但今天突然发生删除最后一条记录时报错!!!
- 为什么用combobox选列值每次都要点一下、才会出现?而且选中后再点下拉菜单全变成一样的值了?!
- 请推荐一本关于DELPHI网络编程的书!
- 极度郁闷:公司将抛弃delphi
- 关于图形处理的问题 ------???
[email protected]
谢谢。
dllForm := TFrmSysLog.Create(Application);
try
dllForm.Caption := ACaption;
dllForm.Align := alClient;
dllForm.Show;
dllForm.ParentWIndow := AParentHandle; //传入的应该是Panel的Handle finally
dllForm.Free;
end;
end;