以下是我的原始程式碼:
================================================== = ==========================================
DPR單元代碼
程序Mdiform;
用途
表格,
UMdiformin´UMdiform.pas´{Mainform},
UDMin´UDM.pas´{GlobalDM:TDataModule},
UFunin'UFun.pas';
{$R*.res}
開始
應用程式.初始化;
Application.CreateForm(TMainform,Mainform);
應用程式.運行;
結尾。
================================================== = =================================================
主要代碼:
單位UMdiform;
介面
用途
Windows、訊息、SysUtils、變體、類別、圖形、控制項、表單、
對話框、Udm、StdCtrls;
類型
TMainform=類別(TForm)
按鈕1:T按鈕;
procedureButton1Click(寄件者:TObject);
procedureFormCreate(發送者:TObject);
私人的
{私人聲明}
民眾
我的句柄:HWND;
{公開聲明}
結尾;
變數
主窗體:TMainform;
類型
T_ShowTestMng=函數(varadm:TMainform):Boolean;StdCall;
執行
{$R*.dfm}
procedureTMainform.Button1Click(寄件者:TObject);
變數
Lib_:T句柄;
_ShowTestMng:T_ShowTestMng;
開始
Lib_:=LoadLibrary(pchar('MdiChild.dll'));
嘗試
@_ShowTestMng:=GetProcAddress(Lib_,´_ShowTestMng´);
ifnot(@_ShowTestMng=nil)then
_ShowTestMng(主視窗);
最後
自由庫(Lib_);
結尾;
結尾;
procedureTMainform.FormCreate(Sender:TObject);
開始
MyHandle:=Application.Handle;
結尾;
結尾。
================================================== = =============================================
子表格DLL程式碼:
庫MdiChild;
用途
分享記憶,
UMdiform,//此單元為父單元,在頂部目設定中我已經在路徑中設定了搜尋此單元。
表格,
系統實用程序,
課程,
UChildin´UChild.pas´{FrmChild};//FrmChild子子表單的FormStyle屬性為FsMDIChild
{$R*.res}
function_ShowTestMng(varadm:TMainform):Boolean;StdCall;
開始
結果:=真;
Application.Handle:=adm.MyHandle;
Application.CreateForm(TFrmChild,FrmChild);//程式就出錯了:錯誤原因是:Cannotcreateform.NoMDIFormsarecurrentlyactive.
FrmChild.Show;
結尾;
出口
_ShowTestMng;
結尾。