以下是我的原代码 :
=================================================== ========================================
DPR单元代码
programmeMdiform ;
utilise
Formulaires,
UMdiformin´UMdiform.pas´{Mainform},
UDMin´UDM.pas´{GlobalDM:TDataModule},
UFunin´UFun.pas´;
{$R*.res}
commencer
Application.Initialiser ;
Application.CreateForm(TMainform,Mainform);
Application.Exécuter ;
fin.
=================================================== ==============================================
主窗体代码:
unitéUMdiforme;
interface
utilise
Windows, messages, SysUtils, variantes, classes, graphiques, contrôles, formulaires,
Boîtes de dialogue, Udm, StdCtrls ;
taper
TMainform=classe(TForm)
Bouton1 : TBouton ;
procédureButton1Click(Expéditeur:TObject);
procédureFormCreate(Expéditeur:TObject);
privé
{Déclarations privées}
publique
MonPossède :HWND ;
{Déclarations publiques}
fin;
var
Mainform : TMainform ;
taper
T_ShowTestMng=function(varadm:TMainform):Boolean;StdCall;
mise en œuvre
{$R*.dfm}
procédureTMainform.Button1Click(Expéditeur:TObject);
var
Lib_:TPoignée;
_ShowTestMng:T_ShowTestMng;
commencer
Lib_:=LoadLibrary(pchar(´MdiChild.dll´));
essayer
@_ShowTestMng:=GetProcAddress(Lib_,´_ShowTestMng´);
sinon (@_ShowTestMng=nil) alors
_ShowTestMng(Mainform);
enfin
Bibliothèque gratuite (Lib_);
fin;
fin;
procédureTMainform.FormCreate(Expéditeur:TObject);
commencer
MonHandle:=Application.Handle;
fin;
fin.
=================================================== =============================================
Il s'agit d'une DLL :
bibliothèqueMdiChild ;
utilise
PartagerMem,
UMdiform, //
Formulaires,
SysUtils,
Cours,
UChildin´UCild.pas´{FrmChild};//FrmChild子窗体的FormStyle属性为FsMDIChild
{$R*.res}
function_ShowTestMng(varadm:TMainform):Boolean;StdCall;
commencer
résultat :=vrai ;
Application.Handle:=adm.MyHandle;
Application.CreateForm(TFrmChild,FrmChild);//程序就出错在此:出错原因是:Impossible de créer un formulaire.NoMDIFormsarecurrentlyactive.
FrmChild.Show;
fin;
exportations
_ShowTestMng ;
fin.