DLL i MDIChild - problem

0

Witam.

W mojej aplikacji MDI wywołuję formy MDIChild z dynamicznych DLL-i. Na razie robię to tak:

DLL-ka:

library mag;


uses
  SysUtils,
  Windows,
  Forms,
  Classes,
  Sharemem,
  mag_frm in 'mag_frm.pas' {mag_f};

var
dllapp : TApplication;

{$R *.res}

procedure show_mag(MainApp : Tapplication); 
var
magf     : Tmag_f;
begin
if not Assigned(DllApp) then begin
DllApp := Application;
Application := MainApp;
end;
magf := Tmag_f.Create(MAinapp);
magf.Show;

end;

procedure MyDLLProc(Reason: Integer);
begin
if Reason = DLL_PROCESS_DETACH then
if Assigned(DllApp) then
Application := DllApp;
end;

exports

show_mag name 'show_mag';

begin
DLLProc := @MyDLLProc;
end.

I główna forma programu:

var
  MainForm: TMainForm;
 procedure show_mag (MainApp : TApplication);external '..\DLL\mag.dll';

procedure TMainForm.ToolButton2Click(Sender: TObject);

begin
show_mag (application);

end;

Problem polega na tym, że w trakcie działania aplikacji wszystko jest tak jak powinno być i dzała jak powinno, ale kiedy zamykam aplikację to pojawia się błąd :

W aplikacji wystąpił wyjątek nieznany wyjątek programowy (0x0eedfade) pod adresem 0x7c81eb33.

a następnie :

Runtime error 217 at 00383C74

Proszę jeśli ktoś wie co jest nie tak to pliss pomocy.

0

Polecam podmienić również TScreen, nie tylko TApplication. To po pierwsze. Po drugie zrób:

procedure Tmag_f.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;

Powinno pomóc.

0

To już było na samym początku dodane. Inaczej forma MDIChild by się nie zamykała. Generalnie zmiana tego parametru nie ma wpływu na opisań przez mnie sytuację

0

Jakby co, to zgłoś się na GG do mnie, to postaram się pomóc. Obecnie jestem przy kompie :)

[dopisane]

Po rozmowie online, pomimo chęci.. problem pozostał :|

1 użytkowników online, w tym zalogowanych: 0, gości: 1