Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi AccessViolation bei Form aus DLL (https://www.delphipraxis.net/31676-accessviolation-bei-form-aus-dll.html)

FBrust 12. Okt 2004 15:04


AccessViolation bei Form aus DLL
 
Hallo,

ich habe auf Basis des (hervorragenden :thumb: ) DLL-Tutorials von Assarbad mein Programm um dynamische DLLs erweitert, was auch soweit funktioniert.

Nun wollte ich ein Formular in die DLL auslagern, erhalte jedoch bei Aufruf von
Code:
procedure FormShowModal(parent: Pointer); stdcall;
begin
  frmAW0052 := TFrmAW0052.Create(nil);
  if Assigned(parent) then
    frmAW0052.SetParent(parent);
  frmAW0052.ShowModal;
end;
in der Zeile
Code:
  frmAW0052 := TFrmAW0052.Create(nil);
eine AccessViolation, gefolgt von einer Speicheradresse.

Danach wird das Formular angezeigt. Kann es evtl. daran liegen, dass das Formular bereits beim Laden der DLL erzeugt wird? Und wenn ja, wie kann ich das verhindern?


Gruß
Frank

FBrust 12. Okt 2004 15:35

Re: AccessViolation bei Form aus DLL
 
Korrektur:

Wenn ich das ganze über das Hauptprogramm aufrufe (d.h. nicht über das DLL-Projekt aus Delphi heraus), erhalte ich die Exception und das Formular wird nicht angezeigt.

Ausserdem erscheint diese Exception generell beim Versuch, das Formular anzuzeigen.


Gruß
Frank

FBrust 12. Okt 2004 15:54

Re: AccessViolation bei Form aus DLL
 
So,

ich habe das Problem jetzt weiter eingekreist:

In der DLL befindet sich auch ein Datenmodul, das eine Tabelle beinhaltet. Die Exception entsteht, wenn ich auf das Datenmodul, z. B. mit
Code:
    with dmAW0052 do begin
      tblSD_Reports.Open;
    end;
zugreifen will.

Da allerdings im Laufe der Zeit noch mehrere Tabellen bzw. Abfragen hinzukommen, brauche ich ein Datenmodul.

Hat vielleicht jemand einen Tip?


Gruß
Frank

FBrust 12. Okt 2004 16:08

Re: AccessViolation bei Form aus DLL
 
Problem gelöst:

Es hilft einfach unheimlich, wenn die Formulare auch erzeugt (.Create...), die man benutzen will :wall:


Gruß
Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:20 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz