Entwickler-Ecke

Dateizugriff - Form in DLL mit Rückgabewert


bis11 - So 02.03.03 12:50
Titel: Form in DLL mit Rückgabewert
Hi Leutz,

ich stehe mal wieder vor einem Problem, ich habe eine Form in einer DLL. Nun möchte ich gerne, sofern es geht, dass wenn die Form geschlossen wird mir einen Wert (String) zurückgibt. Ist dieses Möglich und wenn ja wie ?


HeLe - So 02.03.03 13:11

So wie sich das anhört wärst du mit einer Package(.bpl)-Datei grundsätzlich besser bedient, da merkt dein Programm normalerweise nämlich gar nicht, das es eine Bibliothek anspricht. Allgemein wird mir um .dlls unter delphi viel zu viel trara gemacht.
.dll-Dateien sind in der Regel nur dazu gut, um Bibliotheken zu erstellen, die auch von in einer anderen Programmiersprache geschriebenen Programmen angesprochen werden sollen!!

Für Delphi-only Programme sind .bpl-Dateien eigentlich immer die bessere Wahl! Öffne mal den Projektmanager, füg deiner Projektgruppe ein neues Package hinzu und spiel mal ein bißchen rum. ich find das deutlich einfacher (und auch leistungsfähiger) als .dll-Dateien


bis11 - So 02.03.03 13:22

Hi,

danke erstmal für Deine Antwort. Aber soweit ich weiß, kann ich doch keine bpl-Dateien in ein Programm einbinden oder ?


AndyB - So 02.03.03 13:41

Du kannst sehr wohl Packages in dein Programm einbinden.
Menü Projekt/Optionen.../Packages "Mit Laufzeit-Packages kompilieren"


bis11 - So 02.03.03 13:48

Ok, gut. Das habe ich nicht gewusst. Nur wie mache ich das ? Ich will aber keine Komponente erstellen.


HeLe - So 02.03.03 18:40

mußt du auch nicht, einfach Datei/Neu/Package
Runtime-Packages funktionieren im Prinzip so ähnlich wie .dlls, nur daß sie halt voll auf Delphi (und den C++-Builder) zugeschnitten sind.
Ob die sie nun in die .exe-Datei mit einbindest (wie das standardmäßig auch bei der VCL der Fall ist) oder Laufzeit-Packages (.bpl-Dateien) benutzt, stellst du nur in den Projektoptionen ein. Dein Quellcode ändert sich dadurch nicht!
Es wird z.B. auch häufig kritisiert, daß die exe-Dateien, die Delphi erstellt, so groß sind. Wenn du die VCL aber als Runtime-Package benutzt, ist ein Programm, das ein leeres Fenster anzeigt auch nur noch ca. 15 kb groß!!
(Nachteil ist natürlich, daß der Anwender die Standard .bpl-Dateien besitzen muß - wovon man im allgemeinen nicht ausgehen kann)


bis11 - So 02.03.03 20:56

Ja und das will ich ja gerade vermeiden. Ich habe zwar es jetzt temporär über einen Datei gelöst, was mich aber nicht ganz glücklich macht. Deshalb bräuchte eine bessere Lösung.


HeLe - Mo 03.03.03 12:29

du kannst natürlich auch die VCL-Packages mit einbinden, indem du nur deine eigenen .bpl-Dateien in die "mit Laufzeit-Packes erstellen"-Liste schreibst. Dann erzielst du im Prinzip genau den gleichen Effekt wie mit .dlls, nur daß du für .bpls normalerweise nichts am Quellcode ändern mußt (keine external-Deklarationen) und du z.B. auch problemlos Typen/Klassen-Deklarationen in die Bibliothek auslagern kannst. So'n Package sprichst du halt wie ne ganz normale Unit an.


bis11 - Mo 03.03.03 14:35

Dadurch wird aber meine EXE-Datei wieder fetter und dieses möchte ich ja gerade verhindern, indem ich Funktionen einfach in eine DLL auslagere. Aber irgendwie steige ich da noch nicht ganz durch mit dem bpl-Dateien. Hast Du da mal ein paar Tut's für mich ?


bis11 - Di 11.03.03 15:47

Wer kann mir zu diesem Thema ein Beispiel geben oder mir Tutorials nennen ?