Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi DLL-Form und Taskbar (https://www.delphipraxis.net/95084-dll-form-und-taskbar.html)

Mattze 1. Jul 2007 14:07

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

DGL-luke 1. Jul 2007 14:10

Re: DLL-Form und Taskbar
 
Delphi-Quellcode:
function CheckApplication(Original: TApplication): Boolean;
begin
  Result := Original = Application;
end;
Pack diese Funktion in deine DLL, epxortier sie, und führe sie aus dem Hauptmodul aus.
Dann weißt du, ob du zwei mal das gleiche hast.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:48 Uhr.
Seite 2 von 2     12   

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