![]() |
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:
Das Problem besteht darin, dass bei dem Aufruf von 'Form1.Showmodal' die Fehlermeldung kommt, dass aus einem sichtbaren Fenster kein modales werden kann.
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; 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 |
Re: Exception beim Aufruf von DLL
Versuch mal das
Delphi-Quellcode:
durch das zu ersetzen:
Application.CreateForm(TForm1, Form1);
Delphi-Quellcode:
Form1 := Tform1.Create( nil);
|
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??? |
Re: Exception beim Aufruf von DLL
Villeicht durch Verwendung einer loaklen Formvariable?
|
Re: Exception beim Aufruf von DLL
Was heißt das genau?
|
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. :)
|
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 |
Re: Exception beim Aufruf von DLL
Zitat:
|
Re: Exception beim Aufruf von DLL
Ist das denn gut wenn ich das tue?Wie soll das funktionieren?
|
Re: Exception beim Aufruf von DLL
Delphi-Quellcode:
Form1.OnFormShow := Nil;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 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 by Thomas Breitkreuz