Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Form auslagern (https://www.delphipraxis.net/16406-form-auslagern.html)

Albi 16. Feb 2004 18:18


Form auslagern
 
Hallo,

ich habe vor einige Forms meines Prog in eine DLL oder in Package auszulagern. Nun habe ich gelesen, das es bei der Auslagerung in Dll's zu Problemen kommen kann.

Bevor ich mich jetzt aber schreibe und dann ins Fettnäbchen trette, wollte ich vorher nach euren Erfahrungen fragen. Ist es besser eine DLL oder ein Package zu nehmen?

Luckie 16. Feb 2004 18:20

Re: Form auslagern
 
In dem DLL-Tutorial http://www.luckie-online.de/files/exports/assarbad/ steht es drin, wie es geht.

Albi 16. Feb 2004 19:05

Re: Form auslagern
 
Vielen dank für den Link. Hier wird genau das beschrieben,was ich schon gelesen habe. Also ist es doch besser, das Form in ein Package zu legen als in eine DLL.

Der einzigste Grund, warum ich das Form auslagern möchte, liegt darin, das die exe ein wenig kleiner wird. Geschied das auch, wenn ich das in Package lege?

Luckie 16. Feb 2004 19:10

Re: Form auslagern
 
Form in Exe < Exe + Form in Package. Du hast ja noch den Overhead des Packages dabei.

neolithos 16. Feb 2004 19:23

Re: Form auslagern
 
Wegen einer Form lohnt sich der Aufwand nicht!

Sind es aber viele Oder Soll es durch eine klar def. Schnittaustauschbar sein, ist das Package eine elegante Lösung.

Albi 16. Feb 2004 19:24

Re: Form auslagern
 
Jetzt stehe ich wohl gerade auf dem Schlauch. Um die jeweilige Größe der Exe zu minimieren, sollte man das ganze in eine DLL packen.

neolithos 16. Feb 2004 19:25

Re: Form auslagern
 
Dann ist zwar die EXE klein.

Aber die DLL hat ja auch eine größe!

Albi 16. Feb 2004 19:42

Re: Form auslagern
 
Logisch, aber die Hauptanwendung wird kleiner und das ist ja auch der Sinn und Zweck. Wie groß die DLL sind spielt bei mir in diesem Moment keine Rolle. Da die benötigten Teil erst bei bedarf geladen werden.

Luckie 16. Feb 2004 19:48

Re: Form auslagern
 
Äh, Formen kannst du auch erst zur Laufzeit laden. Also es macht im Moment, so wie ich es sehe, für dich keinen Sinn, das auf Biegen und Brechen auslagern zu wollen, nur weil es schick aussieht zur eigenen Anwendung DLL's mit ausliefern zu wollen.

Albi 16. Feb 2004 19:54

Re: Form auslagern
 
Die einzelnen Forms erzeuge ich nur schon zur Laufzeit. Ich dachte nur das es besser wäre für die Anwendung, wenn die exe nicht so groß ist. Meine Anwendung hat bereits eine Größe von 3 MB und irgendwie bin ich noch lange nicht fertig. Daher dachte ich das es besser wäre, Forms die nicht so häufig verwendet werden einfach auszulagern. Nur weil es schick aussieht würde ich das bestimmt nicht machen.

Luckie 16. Feb 2004 19:57

Re: Form auslagern
 
Wie kommst du denn auf drei MB? :shock:

neolithos 16. Feb 2004 19:58

Re: Form auslagern
 
Dann verwende das Konzept Laufzeit-Packages.

1. Das bedeutet zwar eine Menge DLL bzw. BPL Dateien aber die Anwenung wird schlang.
2. Zusätzliche DLL's / BPL's bleiben schlank da sie auch die im Verzeichnis befindlichen Packages nutzen.

Bei 3 MB bis sagen wir mal 10 MB bringt das zwar nix. Doch dynamische Erweiterungen sind (wenn man es einaml begriffen hat) leicht zu vollziehen.

Albi 16. Feb 2004 20:00

Re: Form auslagern
 
Sorry es sind nur 2,4 MB. Es besteht aus 30 Forms und somit wächst die exe immer weiter. Und es kommen noch mehr Forms dazu, ich habe ja gerade mal die Hälfte fertig.

Hab ich da falsch gemacht? Das hört sich so empört an!

Luckie 16. Feb 2004 20:06

Re: Form auslagern
 
30 Forms? Nun kann ich mir ehrlich gesagt nicht so ganz vorstellen wie man eine Anwendung mit so viel Fenstern hinbekommt. Selbst Word hat da wohl weniger.

Albi 16. Feb 2004 20:10

Re: Form auslagern
 
Forms sind bei mir die Fenster die aufgehen, wenn man auf eine Btn oder Schaltfläche oder sowas klickt. Ich hoffe ich habe ich da jetzt nicht falsch ausgedrückt. Die Anwendung ist sehr umfangreich und daher habe ich soviel Fenster/Forms.

neolithos 16. Feb 2004 20:14

Re: Form auslagern
 
Bei solch großen Anw. sollte man sie vielleicht doch lieber in log. Einheiten zerteilen.

Gründe:

- Wartbarkeit
- Übersicht
- Erweiterbarkeit

--> Packages wie gemacht dafür
--> Dll's machen wegen dem Speichermanager nur ärger.

Albi 16. Feb 2004 20:17

Re: Form auslagern
 
So das klingt gut und vor allem logisch. Und wie kann ich sowas in ein Package reinbasteln? Ich habe eben mal kurz geschaut aber ich weiß nicht wo ich das bei Delphi machen soll.

neolithos 16. Feb 2004 20:27

Re: Form auslagern
 
Unter Datei->Neu->Package kann man solch ein Teil erstellen.

Mehr infos wird es hier im Forum geben. Suche mal im Internet nach Tutorials.

Eine gute Quelle ist auch die Hilfe von Delphi unter dem stichwort Laufzeit-Packages oder so ähnlich.

Sieh dich einfach mal um.

Albi 16. Feb 2004 20:30

Re: Form auslagern
 
Ich habe beim ersten mal nicht richtig geschaut, habe es aber gefunden und werde nun mal ein wenig damit rum experimentieren. Vielen Dank für die Hilfe.

neolithos 16. Feb 2004 20:32

Re: Form auslagern
 
Rum experimentieren ist eine gut Idee!

Bloß nicht gleich in das scharfe Project einbauen.

Erstmal die Technologie begreifen, das Ausmaß abstecken und dann neu Planen.


Stichwort: RegisterClass damit kann man sich z.B. GetProcAdress sparen.

Albi 16. Feb 2004 20:39

Re: Form auslagern
 
Ich will das ganze eh von Paradox auf Interbase umstellen und da kommt es auf ein wenig mehr lernen nicht mehr drauf an. Ich werde es schon vorher testen nicht das ich ein blaues Wunder erlebe.

Was ich aber nicht ganz verstanden habe ist, in diese Package werden dann die Forms gelegt und die exe entlastet, oder. Ich habe es mit dem Project mal ausprobiert und die bpl ist nur 127 kb groß und die exe immer noch so groß wie vorher.

neolithos 16. Feb 2004 20:59

Re: Form auslagern
 
Das liegt daran, dass das Package generell Laufzeit-Packages verwendet.

In der Exe hat man die Möglichkeit alle Packages einzulinken.

Dies kann man über Project -> Optionen
Laufzeitpackages einstellen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:59 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 by Thomas Breitkreuz