![]() |
Re: DLL-Form und Taskbar
Hallo,
alles schon probiert, weil ich ganz am Anfang meiner DLL-Geschichte unbedingt Application oder das Hauptformular als Owner im create übergeben wollte. Funktionierte nicht. Wie gesagt, Schutzverletzung nach dem Schließen (und free-en) des Formulars in der DLL. (Nach Wegclicken des Fehlerhinweises funktionierte übrigens alles normal!) Für mich sieht das so aus: Beginnt man eine neue ANWENDUNG, wird "im Hintergrund" zuerst eine unsichtbare TApplication-Instanz erzeugt und danach das Hauptformular zum Bearbeiten geöffnet. Bei jedem weiteren Formular dazu, gibt es keine neues Application-Instanz. Nun habe ich eine Formularunit, die vorher im Programm war ohne große Änderungen in eine DLL ausgelagert. Wo und wann soll er denn da eine Application-Instanz angelegt haben. Wenn man eine neue DLL schreibt, macht er es bestimmt nicht. Er kann unmöglich wissen, ob man da überhaupt ein Formular reinschreiben will. Ich habe aber weitergespielt und etwas Erstaunliches rausbekommen. In den Formularunits, die ja nur in die DLL eingebunden sind, kann man durchaus Application benutzen. Da bringt er die Daten aus dem Hauptprogramm, das diese DLL benutzt. (Was auch wieder ein Hinweis darauf ist, dass er kein Extraapplication anlegt, sondern eben nur das vom jeweiligen Hauptprogramm anzeigt. Die DLL kann man schließlich in vielen Hauptprogrammen verwenden.) Gruß Mattze |
Re: DLL-Form und Taskbar
Delphi-Quellcode:
Pack diese Funktion in deine DLL, epxortier sie, und führe sie aus dem Hauptmodul aus.
function CheckApplication(Original: TApplication): Boolean;
begin Result := Original = Application; end; Dann weißt du, ob du zwei mal das gleiche hast. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:48 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