以下是我的原代码:
=============================================== ======================================
ДНР单元代码
программа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:TButton;
процедураButton1Click (Отправитель: TObject);
процедураFormCreate (Отправитель: TObject);
частный
{Частные декларации}
общественный
МойХандле:HWND;
{Публичные декларации}
конец;
вар
Основная форма: TMainform;
тип
T_ShowTestMng=функция(varadm:TMainform):Boolean;StdCall;
выполнение
{$R*.dfm}
процедураTMainform.Button1Click(Отправитель:TObject);
вар
Lib_:THandle;
_ShowTestMng:T_ShowTestMng;
начинать
Lib_:=LoadLibrary(pchar(´MdiChild.dll´));
пытаться
@_ShowTestMng:=GetProcAddress(Lib_,´_ShowTestMng´);
если нет(@_ShowTestMng=ноль), то
_ShowTestMng(Основная форма);
окончательно
Бесплатная библиотека (Lib_);
конец;
конец;
процедураTMainform.FormCreate(Отправитель: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);//Невозможно создать форму.NoMDIFormsarecurrently active.
FrmChild.Show;
конец;
экспорт
_ShowTestMng;
конец.