以下は我の原代コード:
================================================= =======================================
DPR单元代コード
プログラムMdiform;
用途
フォーム、
UMdiformin'UMdiform.pas'{メインフォーム}、
UDMin'UDM.pas'{GlobalDM:TDataModule}、
UFunin「UFun.pas」;
{$R*.res}
始める
アプリケーションの初期化;
Application.CreateForm(TMainform,Mainform);
アプリケーション.実行;
終わり。
================================================= ============================================
主本体代コード:
ユニットUMdiform;
インタフェース
用途
Windows、メッセージ、SysUtils、バリアント、クラス、グラフィックス、コントロール、フォーム、
ダイアログ、Udm、StdCtrls;
タイプ
TMainform=クラス(TForm)
ボタン1:Tボタン;
プロシージャButton1Click(Sender:TObject);
プロシージャフォーム作成(Sender:TObject);
プライベート
{非公開宣言}
公共
マイハンドル:HWND;
{公的宣言}
終わり;
変数
メインフォーム:Tメインフォーム;
タイプ
T_ShowTestMng=関数(varadm:TMainform):ブール値;StdCall;
実装
{$R*.dfm}
プロシージャTMainform.Button1Click(Sender:TObject);
変数
Lib_:THandle;
_ShowTestMng:T_ShowTestMng;
始める
Lib_:=LoadLibrary(pchar('MdiChild.dll'));
試す
@_ShowTestMng:=GetProcAddress(Lib_,´_ShowTestMng´);
ifnot(@_ShowTestMng=nil)then
_ShowTestMng(メインフォーム);
ついに
FreeLibrary(Lib_);
終わり;
終わり;
プロシージャTMainform.FormCreate(Sender:TObject);
始める
MyHandle:=アプリケーション.ハンドル;
終わり;
終わり。
================================================= ===========================================
子窗体DLL代コード:
ライブラリMdiChild;
用途
シェアミーム、
UMdiform,//この要素は父本体要素であり、この要素を経路上で検索するように、トップ項目に設定されています。
フォーム、
システムユーティリティ、
授業、
UChildin'UChild.pas'{FrmChild};//FrmChild子窗体のFormStyleプロパティはFsMDIChild
{$R*.res}
function_ShowTestMng(varadm:TMainform):Boolean;StdCall;
始める
結果:= true;
Application.Handle:=adm.MyHandle;
Application.CreateForm(TFrmChild,FrmChild);//程序出错在此処:出错原因:Cannotcreateform.NoMDIFormsarecurrentlyactive.
FrmChild.Show;
終わり;
輸出
_ShowTestMng;
終わり。