AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Exception beim Aufruf von DLL

Ein Thema von Moony · begonnen am 24. Jul 2006 · letzter Beitrag vom 24. Jul 2006
Antwort Antwort
Seite 1 von 2  1 2      
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#1

Exception beim Aufruf von DLL

  Alt 24. Jul 2006, 11:08
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.

Vielen Dank im Vorraus!

Gruß, Moony
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Exception beim Aufruf von DLL

  Alt 24. Jul 2006, 11:11
Versuch mal das

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

Form1 := Tform1.Create( nil);
Markus Kinzler
  Mit Zitat antworten Zitat
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Exception beim Aufruf von DLL

  Alt 24. Jul 2006, 11:34
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???
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Exception beim Aufruf von DLL

  Alt 24. Jul 2006, 11:45
Villeicht durch Verwendung einer loaklen Formvariable?
Markus Kinzler
  Mit Zitat antworten Zitat
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Exception beim Aufruf von DLL

  Alt 24. Jul 2006, 12:25
Was heißt das genau?
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat
Benutzerbild von ste_ett
ste_ett

Registriert seit: 10. Sep 2004
Ort: Dülmen
464 Beiträge
 
Delphi 7 Professional
 
#6

Re: Exception beim Aufruf von DLL

  Alt 24. Jul 2006, 12:28
Wenn die Form nur innerhalb des Function genutzt wird, verlagere doch einfac hdas Erstellen/Freigeben der Form in die Funktion.
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!
  Mit Zitat antworten Zitat
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#7

Re: Exception beim Aufruf von DLL

  Alt 24. Jul 2006, 12:37
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
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Exception beim Aufruf von DLL

  Alt 24. Jul 2006, 13:09
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.
Markus Kinzler
  Mit Zitat antworten Zitat
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#9

Re: Exception beim Aufruf von DLL

  Alt 24. Jul 2006, 13:22
Ist das denn gut wenn ich das tue?Wie soll das funktionieren?
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Exception beim Aufruf von DLL

  Alt 24. Jul 2006, 13:26
Form1.OnFormShow := Nil;
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:10 Uhr.
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