Delphi-PRAXiS

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 Forms aus DLL/BPL erhalten eigenen Task (https://www.delphipraxis.net/134366-forms-aus-dll-bpl-erhalten-eigenen-task.html)

AndyDF 20. Mai 2009 17:02


Forms aus DLL/BPL erhalten eigenen Task
 
Hallo,

ich habe eine DLL entwickelt, welche als Schnittstelle zu unserer Anwendung dient. Diese DLL verwendet wiederum einige von uns entwickelte BPL´s. In den BPL´s gibt es verschiedene Formulare, welche dynamisch erzeugt und modal angezeigt werden.
Jetzt teste ich gerade unsere Schnittstellen-DLL mit der rufenden externen Anwendung (EXE). Von dieser habe ich jedoch keinen Source und somit keine Detail-Informationen. Ich weiß jedoch, dass unsere DLL ganz normal geladen wird (hierfür habe ich den Source gesehen).

Das Problem ist, dass wenn ich ein von uns erzeugtes Formular modal anzeige, dieses Form einen eigenen Task in der Taskliste erhält. Jedes weitere Form (verschachtelt) erhält auch einen eigenen Task. Ich kann zwischen den Tasks somit wechseln und das "Haupt-Programm" in den Vordergrund bringen. Auch wenn ich in diesem nichts verändern kann solange unser Formular angezeigt wird. Dies sollte doch aber nicht möglich sein.

Ich habe selbst eine Test-Anwendung geschrieben, welche unsere Schnittstellen-DLL verwendet. Hier funktioniert alles wie gewünscht. Die Forms erhalten keine eigene Tasks und werden korrekt modal angezeigt.

Unsere DLL und BPL´s sind mit Delphi 7 compiliert. Auch unser Testprogramm ist mit Delphi 7 erstellt.
Die externe Anwendung welche uns ruft ist mind. mit Delphi 2007 oder höher erstellt. Kann dies ein Grund sein? Kompatibilitätsprobleme?

Wie verhält es sich mit der TApplication Instanz? Hat die DLL eine eigene?

Hoffe ihr könnt mir helfen.

Viele Grüße,
Andreas

Bernhard Geyer 20. Mai 2009 20:17

Re: Forms aus DLL/BPL erhalten eigenen Task
 
Du kannst versuchen Application.Handle der Exe explizit auf Application.Handle zu sezten. Ansonsten ist BPL und unterschiedliche Compilerversionen immer sehr problematisch. Ich wundere mich eher das es nicht an allen Ecken und Enden kracht? Oder verwendet ihr eine C-Kompatible Schnittstelle zwischen Exe und DLL.

AndyDF 25. Mai 2009 07:36

Re: Forms aus DLL/BPL erhalten eigenen Task
 
Hallo Bernhard,

vielen Dank für die Antwort. Wie es aussieht ist das setzen des Application.Handle die Lösung. Diese ist unterschiedlich, weil wir untereschiedliche Compiler verwenden. In meinem Test-Programm funktioniert es, da sowohl dieses als auch unsere DLL mit der selben Delphi Version compiliert wurde und somit die selben Laufzeitpackages verwendet werden.

Die Schnittstelle zwischen den beiden Programmen ist kein Problem. Es wird eine C-kompatible Schnittstelle verwendet.

Viele Grüße,
Andreas


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:29 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