如何在delphi 中调用 DLL中的窗体,并且把这个窗体嵌套在TPanel中?

如题所述

第1个回答  2011-11-29
把panel传到DLL里,并设置窗体的parent为panel就行了。不过建议不要这么做,因为会有一些比较麻烦的问题出现。
第2个回答  2011-11-30
DLL必须知道这些容器的窗口句柄,并将自身窗口作为容器的子窗口,ShowDllForm必须改写如下:

/// Parent可传入Panel的Handle值
procedure ShowDllForm:stdcall(Parent:THandle);stdcall;export;

begin

Application.handle:=parent;

//将容器设为应用程序句柄

//以非模态创建并显示窗口

if DllForm = nil then

DllForm := TDllForm.Create(Application);

DllForm.PParentWindow:=Parent;//将容器设置为父窗口

DllForm.Show;

end;本回答被提问者采纳

如何在delphi 中调用 DLL中的窗体,并且把这个窗体嵌套在TPanel中?
把panel传到DLL里,并设置窗体的parent为panel就行了。不过建议不要这么做,因为会有一些比较麻烦的问题出现。

...怎么把FORM中的控件如BUTTON放在FORM。TPANEL中,等于让TPANEL里显示...
form.parent:=panel1;form.show;就能显示form在panel1里 我实现过 其实这效果frame就可以 不过这样操作 button是可以显示,但form有mainmenu的话,是不能显示mainmenu的

delphi 调用 EXE 并在Panle中运行
procedure TForm1.Button1Click(Sender: TObject);begin if OpenD.Execute then begin if hWin > 0 then PostMessage(hWin, WM_CLOSE, 0, 0); \/\/ close any app currently opened if not RunAppInPanel(OpenD.FileName, Panel1.Handle) then ShowMessage('App not found');end;end;procedure...

delphi 如何获取其它应用程序窗体中的所有控件句柄
实现原理是启动一个应用程序,通过ProcessID得到窗体句柄,然后对其设定父窗体句柄为本程序某控件句柄(本例是窗体内一个Panel的句柄),这样就达成了内嵌的效果。新建窗体,上面放置一个Panel控件,名为pnlApp,然后按下面代码编写:unit frmTestEmbedApp; interface uses Windows, Messages, SysUtils...

DELPHI中如何不设置控件的Parent属性而显示控件
Panel: TPanel;Panel := TPanel.CreateParented(PatentHandle);a := TButton.CreateParented(PatentHande);a.Patent := Panel;这样控件就能在VC中的FormView上显示了,但控件和FormView之间就又多了一层Panel。大家看看有没有更直接的方法可以实现的。

请问delphi 的panel 怎么移动啊,就在自己的窗口中移动,不要超出窗口...
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, ExtCtrls;type TForm1 = class(TForm)Timer1: TTimer;Panel1: TPanel;Panel2: TPanel;procedure FormCreate(Sender: TObject);procedure Timer1Timer(Sender: TObject);private { Private declarations } publ...

delphi:父窗体是MDIForm,一个子窗体是MDIChild,其中子窗体中有个过程P...
2、不明白你一个响应鼠标滚轮的小小事件,用得着动用application.OnMessage么?看来Delphi屏蔽消息循环的弱智做法,害了好多人。type TForm1 = class(TMDIChild)Panel1: TPanel;private procedure WMMouseWheel(var Message: TWMMouseWheel);message WM_MOUSEWHEEL;public { Public declarations } end;procedur...

用Delphi6创建DLL文件时如何使用NMPop3控件
NMPop3控件在delphi6中的fastnet面板上,示例代码如下 unit Unit1;interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls, Psock, NMpop3, ExtCtrls;type TForm1 = class(TForm)btn1: TButton;NMPOP31: TNMPOP3;lbl1: TLabel;pnl1: TPanel;...

如何在Delphi中实现停靠
1、在主窗口中添加四个Panel和四个Splitter,设置对齐上下左右四边。2、设定四个Panel的属性DockSite属性为True。3、左右Panel添加 OnDockDrop、OnDockOver、OnUnDock事件如下:procedure TfrmMain.pnlLeftUnDock(Sender: TObject; Client: TControl;NewTarget: TWinControl; var Allow: Boolean);begin if (...

delphi中定义过程 procedure Tform1.init;\/\/ init这个过程名还是提示...
unit Unit1;interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, ExtCtrls, StdCtrls;type TForm1 = class(TForm)Panel1: TPanel;Button1: TButton;procedure Button1Click(Sender: TObject);private procedure iniT;public { Public declarations } end;...

相似回答