Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Exception beim Aufruf von DLL (https://www.delphipraxis.net/73809-exception-beim-aufruf-von-dll.html)

Moony 24. Jul 2006 11:08


Exception beim Aufruf von DLL
 
Hallo zusammen,

ich habe das folgende Problem:

Ich rufe über die exportierte Funktion der DLL diese auf. Dabei werden die Formen erstellt.

Delphi-Quellcode:
library DLL;

uses
  Forms,
  ...,
  Unit1 in 'Unit1.pas' {Form1},
  ...

function ShowMask(var FL, VL : PChar): Boolean; stdcall;
var ...
begin
  Result := false;
  ...
  try
    ...
    Form1.ShowModal;

    if Form1.ModalResult = mrOk then
    begin
      ...

      ...
    end;
  finally
    ...
  end;
end;

exports
  ShowMask;

begin
  Application.CreateForm(TForm1, Form1);
  ...
end;
Das Problem besteht darin, dass bei dem Aufruf von 'Form1.Showmodal' die Fehlermeldung kommt, dass aus einem sichtbaren Fenster kein modales werden kann.
Vorher war das alles möglich und in meinen anderen Projekten ist das ebenfalls so gelöst. Bevor das Programm beim Debug in die exportierte Funktion reingeht wird vorher vom Programm selbst die FormShow-Routine durchgeführt.
Ich hoffe mir kann jemand helfen. Ich bin hier langsam am verzweifeln. :wall:

Vielen Dank im Vorraus!

Gruß, Moony

mkinzler 24. Jul 2006 11:11

Re: Exception beim Aufruf von DLL
 
Versuch mal das

Delphi-Quellcode:
Application.CreateForm(TForm1, Form1);
durch das zu ersetzen:

Delphi-Quellcode:
Form1 := Tform1.Create( nil);

Moony 24. Jul 2006 11:34

Re: Exception beim Aufruf von DLL
 
Ich werde das versuchen. Ich hatte das jedoch auch schon in Augenschein genommen und in einer separaten procedure alle benötigten Formen so erstellt und bei Initialization in der Hauptunit aufgerufen. Aber ich versuche diese Möglichkeit in der Projektdatei.

-> Habe es ausprobiert und immer noch der gleiche Fehler! Vielleicht noch eine andere Idee???

mkinzler 24. Jul 2006 11:45

Re: Exception beim Aufruf von DLL
 
Villeicht durch Verwendung einer loaklen Formvariable?

Moony 24. Jul 2006 12:25

Re: Exception beim Aufruf von DLL
 
Was heißt das genau?

ste_ett 24. Jul 2006 12:28

Re: Exception beim Aufruf von DLL
 
Wenn die Form nur innerhalb des Function genutzt wird, verlagere doch einfac hdas Erstellen/Freigeben der Form in die Funktion. :)

Moony 24. Jul 2006 12:37

Re: Exception beim Aufruf von DLL
 
Habe ich auch schon versucht, leider mit dem gleichen Ergebnis...

Das Problem liegt ja darin, dass nachdem die Form erstellt wurde mit Create() - wo auch immer - geht das Programm direkt in die Routine OnFormShow() und danach kann ich den ShowModal-Befehl nicht mehr ausführen weil das Fenster bereits gezeigt wird.


-> Da muß wohl etwas am Projektfile oder ähnlichem sein. Habe den Source von vor ein paar Tagen genommen, der sich nur in Kleinigkeiten unterscheidet und ihn dann kompilliert und evóila schon tut das. Ich frag mich nur was das sein konnte. Da kann doch nicht sein dass Delphi so einen Scheiß fabriziert und man sich tagelang damit beschäftigen muß.... Trotzdem danke für eure Hilfe!

Gruß, Moony

mkinzler 24. Jul 2006 13:09

Re: Exception beim Aufruf von DLL
 
Zitat:

Das Problem liegt ja darin, dass nachdem die Form erstellt wurde mit Create() - wo auch immer - geht das Programm direkt in die Routine OnFormShow()
Das dürfte er eigentlich nicht, du könntest den Event aber manuell überschreiben.

Moony 24. Jul 2006 13:22

Re: Exception beim Aufruf von DLL
 
Ist das denn gut wenn ich das tue?Wie soll das funktionieren?

mkinzler 24. Jul 2006 13:26

Re: Exception beim Aufruf von DLL
 
Delphi-Quellcode:
Form1.OnFormShow := Nil;


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:46 Uhr.
Seite 1 von 2  1 2      

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