如何将dll里的form放进主窗体的panel里? ( 积分: 100 )

  • 主题发起人 主题发起人 tiger
  • 开始时间 开始时间
T

tiger

Unregistered / Unconfirmed
GUEST, unregistred user!
如果有源码的话更好了。
谢谢
email:z_zll@msn.com
 
如果有源码的话更好了。
谢谢
email:z_zll@msn.com
 
按照catman的方式已经实现了,代码如下
dll中:
function GetForm(hParent:HWND) : TForm; stdcall;export
begin
Result := TForm1.CreateParented(hParent);
end;

主窗口中:
function FormShowInPanel(dllPath:string):TForm;
var GetForm:TGetForm;
handles:Integer;
begin
handles:=LoadLibrary(Pchar(DllPath));
if handles<>0 then
begin
@GetForm:=GetProcAddress(handles,'GetForm');
if @GetForm <> nil then
with GetForm(frmMain.pnl1.Handle) do
show;
end;
end;

不过这样做的话要先释放生成的form,才能释放dll.

散分了
 
如果在DLL中创建Form,不显示(Form单元自注册)。然后在主窗体根据类名寻找,显示在Panel中,行不?
 
问题出来了。。。
嵌入的dll form中Tab及Enter键失效了。

请帮忙。
 
to yostgxf
没有试过,不过应该可以。
 
http://www.delphibbs.com/keylife/iblog_show.asp?xid=2438
 
完美解决了,哈哈,
带包编译,见http://www.delphibbs.com/delphibbs/dispq.asp?lid=1558084
感谢catman和bluedog
 
多人接受答案了。
 
后退
顶部