![]() |
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? |
Re: Form auslagern
In dem DLL-Tutorial
![]() |
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? |
Re: Form auslagern
Form in Exe < Exe + Form in Package. Du hast ja noch den Overhead des Packages dabei.
|
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. |
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.
|
Re: Form auslagern
Dann ist zwar die EXE klein.
Aber die DLL hat ja auch eine größe! |
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.
|
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.
|
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.
|
Re: Form auslagern
Wie kommst du denn auf drei MB? :shock:
|
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. |
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! |
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.
|
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.
|
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. |
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.
|
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. |
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.
|
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. |
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. |
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