以下是我的原代码:
-
DPR单元代码
โปรแกรมMdiform;
การใช้งาน
แบบฟอร์ม
UMdiformin'UMdiform.pas'{เมนฟอร์ม},
UDMin'UDM.pas'{GlobalDM:TDataModule},
UFunin'UFun.pas';
{$R*.เรส}
เริ่ม
แอปพลิเคชันเริ่มต้น;
Application.CreateForm(TMainform,เมนฟอร์ม);
แอปพลิเคชันเรียกใช้;
จบ.
-
主窗体代码:
หน่วยUMรูปแบบ;
อินเตอร์เฟซ
การใช้งาน
Windows, ข้อความ, SysUtils, ตัวแปร, คลาส, กราฟิก, การควบคุม, แบบฟอร์ม,
กล่องโต้ตอบ Udm, StdCtrls;
พิมพ์
TMainform=คลาส(TForm)
Button1:Tปุ่ม;
ProcedureButton1Click (ผู้ส่ง: TObject);
ProcedureFormCreate (ผู้ส่ง: TObject);
ส่วนตัว
{ประกาศความเป็นส่วนตัว}
สาธารณะ
MyHandle:HWND;
{ประกาศสาธารณะ}
จบ;
var
ฟอร์มหลัก:TMainform;
พิมพ์
T_ShowTestMng=function(varadm:TMainform):บูลีน;StdCall;
การดำเนินการ
{$R*.dfm}
ขั้นตอน TMainform.Button1Click (ผู้ส่ง: TObject);
var
Lib_:Tจัดการ;
_ShowTestMng:T_ShowTestMng;
เริ่ม
Lib_:=LoadLibrary(pchar('MdiChild.dll'));
พยายาม
@_ShowTestMng:=GetProcAddress(Lib_,´_ShowTestMng´);
ifnot(@_ShowTestMng=nil)แล้ว
_ShowTestMng(ฟอร์มหลัก);
ในที่สุด
ห้องสมุดอิสระ(Lib_);
จบ;
จบ;
ขั้นตอน TMainform.FormCreate (ผู้ส่ง: TObject);
เริ่ม
MyHandle:=Application.Handle;
จบ;
จบ.
-
子窗体DLL代码:
ห้องสมุดMdiChild;
การใช้งาน
แชร์เมม,
UMdiform,//此单元为父窗体单元,在顶目设置中我已经设置了搜索此单元在路径。
แบบฟอร์ม
SysUtils,
ชั้นเรียน
UChildin´UChild.pas´{FrmChild};//FrmChild子窗体的FormStyle属性为FsMDIChild
{$R*.เรส}
function_ShowTestMng(varadm:TMainform):บูลีน;StdCall;
เริ่ม
ผลลัพธ์:=จริง;
Application.Handle:=adm.MyHandle;
Application.CreateForm(TFrmChild,FrmChild);//程序就出错在此:出错原因是:Cannotcreateform.NoMDIFormsarecurrentlyactive.
FrmChild.Show;
จบ;
การส่งออก
_ShowTestMng;
จบ.