Как использовать форму из DLL


library
 Form;
uses

  Classes,
  Unit1 in
 'Unit1.pas' {Form1};
exports

  CreateMyForm,
  DestroyMyForm;
end
.

 


Это его Unit1: 



unit
 Unit1;

interface


// раздел uses и определение класса Form1


  procedure
 CreateMyForm(AppHandle: THandle); stdcall;
  procedure
 DestroyMyForm; stdcall;

implementation

{$R *.DFM}


procedure
 CreateMyForm(AppHandle: THandle);
begin

  Application.Handle := AppHandle;
  Form1 := TForm1.Create(Application);
  Form1.Show
end
;

procedure
 DestroyMyForm;
begin

  Form1.Free;
end
;

end
.

 


Это UnitCall вызывающего EXE-шника: 



unit

  UnitCall;

interface


// раздел uses и определение класса Form1


  procedure
 CreateMyForm(AppHandle: THandle); stdcallexternal 'Form.dll';
  procedure
 DestroyMyForm; stdcallexternal 'Form.dll';

implementation

{$R *.DFM}


procedure
 TForm1.Button1Click(Sender: TObject);
begin

  CreateMyForm(Application.Handle);
end
;

procedure
 TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin

  DestroyMyForm;
end
;

end
.