![]() |
Viele Formulare in einem Projekt
Hallo zusammen,
habe mal eine allgemeine Frage: Mein Projekt umfasst derzeit ca. 36 Formulare. Ist das zwecks Geschwindigkeit und evtl. Stabilität überhaupt noch sinnvoll oder sollte man es auf einzelne Teilprogramme auslagern und diese dann ggf. aufrufen? Aktuell habe ich zwar keine Probleme, nur das Starten dauert natürlich etwas länger. Da das Projekt ehr noch wächst, ist es für mich sicherer es im Vorfeld schon zu wissen... Danke und viele Grüße, Jack |
AW: Viele Formulare in einem Projekt
Ich würde nur ein einziges Formular im Hauptprogramm erstellen lassen, alle anderen 'on demand', d.h. wenn man das Formular benötigt.
|
AW: Viele Formulare in einem Projekt
genau so macht man es. alle anderen werden dann nur on demand erzeugt. :-D
|
AW: Viele Formulare in einem Projekt
Kommt wohl auch immer darauf an, was man für eine Zielgruppe hat. Ich habe mir lieber einen billigen Splashscreen zusammengezimmert und erzeuge und richte alle Formulare (z.B. Overlays und Popup-Dialoge) direkt beim Start ein.
Die Ladezeit für die Anwendung ist bei mir ziemlich egal, aber wenn ich im Betrieb eine halbe Sekunde für ein Monsterformular sparen kann nehme ich das dankend an. |
AW: Viele Formulare in einem Projekt
OK, in Zeiten wo selber billige FertigPCs mit 16 GB RAM ausgestattet sind...
Aber man stelle sich mal vor alle würden so arbeiten... |
AW: Viele Formulare in einem Projekt
Ich versuche da stets, eine gute Balance zu halten. Fenster, die eigentlich immer wieder gebraucht werden, erzeuge ich automatisch, (modale) Eingabefenster zur Laufzeit. Damit erspart man sich auch ggf. das Löschen alter Daten. Pauschal zu sagen "alles sofort erzeugen" oder "alles erst zur Laufzeit" halte ich persönlich für blödsinnig, es kommt halt immer auf den Einzelfall an, da beides Vor- und Nachteile hat (wer hätte das gedacht? *g*).
|
AW: Viele Formulare in einem Projekt
Zitat:
Zitat:
Und was bringen dir 16 GB wenn du dein programm immer noch als 32-Bit Exe bereit stellst ... :-) |
AW: Viele Formulare in einem Projekt
8 Programme mit 2 GB (oder gar mit 3 GB) machen das dennoch schnell voll. :zwinker:
Im Prinzip wie es DeddyH schon sagte. Nur da, wo es "unbedingt" nötig ist, daß vorher laden. Wobei man es auch teilweise machen kann, nur einige Dinge cached (das, was wirklich langsam ist) und das "langsame" Formular dennoch erst dann erstellt, wenn es benötigt wird. Eventuell auch mal überlegen, ob das Programm wirklich 400 Formulare benötigt und man da nicht besser erstmal was Anderes optimiert. |
AW: Viele Formulare in einem Projekt
Zitat:
Ein Beispiel wäre eine Hauptanwendung und ein Backupprogramm dass die Datenbank und lokalen Einstellungen sichert. Oder das Hauptprogramm soll Dateien per FTP hochladen. Hier könnte man eine weitere Anwendung beilegen, die sich nur um den Datentransfer kümmert und vom Hauptprogramm aufgerufen wird. Delphi bietet leider recht schwache Möglichkeiten eine Anwendung zu unterteilen ("Partitionierung"). Der Versuch einige Formulare in DLLs auszulagern scheitert regelmässig an folgenden Gründen: 1.) Anwendung + DLLs benötigt mehr Speicher in RAM und auf Disk als eine monolitische Anwendung 2.) Probleme bei Updates weil Anwendung und DLLs zusammenpassen müssen 3.) aufwändigere und langsamere Entwicklung weil Schnittstellen zw. Anwendung und DLLs entwickelt werden müssen und sich nur mit höherem Aufwand ändern lassen 4.) erhöhter Aufwand beim Debuggen 5.) auch mit Delphi Packages (=DLL mit objektorientierter Schnittstelle) kommt regelmässig Stress auf weil man dann VCL-Packages benutzen muss. VCL-Packages muss man global für den ganzen Rechner installieren. Tut man dies nicht erreicht man nichts anderes dass man den Rechner mit BPL-Dateien vollmüllt und man mindestens doppelt soviel Diskspeicher benötigt als wenn alles in einer EXE wäre. |
AW: Viele Formulare in einem Projekt
Hallo,
ich habe selbst ein Projekt laufen, dass im Moment 100 verschiedene Formulare für verschiedene Berechnungen und grafische Darstellungen nutzt. Mit dem Tip von jaenicke
Delphi-Quellcode:
werden die modalen Formulare in dem Moment gerufen, wo sie gebraucht werden. Es funktioniert absolut problemlos und vor allem geschieht der Aufruf sehr schnell.
procedure ShowForm(const AFormClass: TFormClass);
var MyForm: TForm; begin MyForm := AFormClass.Create(nil); try MyForm.ShowModal; finally MyForm.Free; end; end; ... showform(TFirgendetwas); Die Startzeit der Anwendung ist minimal, der Speicher wird nicht übermäßig belastet, was will man mehr. Natürlich geht das so nur mit modalen Fenstern. Beste Grüße Mathematiker |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:18 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