DLL i MDIChild - problem

DLL i MDIChild - problem
queue
  • Rejestracja:prawie 22 lata
  • Ostatnio:ponad 16 lat
  • Postów:43
0

Witam.

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

DLL-ka:

Kopiuj
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:

Kopiuj
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.


hi hi Programers Life, coding, coding, coding ... :) :)
SZ
  • Rejestracja:ponad 21 lat
  • Ostatnio:ponad 15 lat
  • Postów:3356
0

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

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

Powinno pomóc.


Dzięki wszystkim forumowiczom za lata wspólnych dyskusji; miłej zabawy w programowanie!
Sławomir "Szczawik" Włodkowski
queue
  • Rejestracja:prawie 22 lata
  • Ostatnio:ponad 16 lat
  • Postów:43
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ę


hi hi Programers Life, coding, coding, coding ... :) :)
SZ
  • Rejestracja:ponad 21 lat
  • Ostatnio:ponad 15 lat
  • Postów:3356
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ł :|


Dzięki wszystkim forumowiczom za lata wspólnych dyskusji; miłej zabawy w programowanie!
Sławomir "Szczawik" Włodkowski

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.