关于MDI程序使用dll中的子窗体(Mdichildform)(100分)

  • 主题发起人 主题发起人 hebiziyu
  • 开始时间 开始时间
H

hebiziyu

Unregistered / Unconfirmed
GUEST, unregistred user!
有没有哪位朋友可以给一个完整的示例工程看看?谢谢。
 
www.2ccc.com有例子
 
1 Dll中的MDIForm.FormStyle不用为fmMDIChild.
2 在CreateForm后写以下两句:
function ShowForm(mainForm:TForm):integer;stdcall
var
Form1: TForm1;
ptr:PLongInt;
begin
ptr:=@(Application.MainForm);//先把dll的MainForm句柄保存起来,也无须释放,只不过是替换一下
ptr^:=LongInt(mainForm);//用主调程序的mainForm替换DLL的MainForm。MainForm是特殊的WINDOW,它专门管理Application中的Forms资源.
//为什么不直接Application.MainForm := mainForm,因为Application.MainForm是只读属性
Form1:=TForm1.Create(mainForm);//用参数建立
end;
备注:参数是主调程序的Application.MainForm
 
to TonSon:你说的那个地方的例子是调用的普通的窗体,并不是mdichildform。

to 桦树皮:能否给一个完整的demo工程?谢谢了。
 
把子窗体做成一个Component和DELPHI自带的控件差不多但不安装而是通过一个DLL文件提供需要的过程和参数来进行调用
 
将原来的或篡改体存放到frame或panel中,或者直接返回该窗体对象
 
调用的普通的窗体是怎么调用的
 
留个EMAIL下来,我有一个DEMO,你要的话
 
hebiziyu@yahoo.com.cn
谢谢app2001
 
多谢各位
 
多人接受答案了。
 
后退
顶部