... oder sollte man es auf einzelne Teilprogramme auslagern und diese dann ggf. aufrufen?
Nur wenn sich die Aufgaben der potentiellen Teilprogramme ohne Überlappungen trennen lassen.
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.