Zitat von
cruso:
Das stimmt schon allerdings werden so, wenn man nicht besonders aufpasst Programme größer als sie sein müssten! Da müsste eine Optimierung eingebaut werden... das würde ich mir von Delphi 2006 wünschen (das und vieles andere z.B. ein paar Fehler weniger).
Was habt ihr immer mit der Dateigröße? Übrigens die Optimierung gibt es schon seit TurboPascal und sie nennt sich Smart Linking. Dabei werden alle nicht benutzen Symbole komplett aus dem Kompilat entfernt bzw. gar nicht erst aufgenommen.
Das ein leeres Formular in Delphi bereits 300-400 KB Exe-Dateien erzeugt liegt darin, dass der Compiler ja nicht ahnen kann, dass mann keine weiteren Features braucht. Und wenn das Objekt TForm, TControl, TWinControl, TApplication und die halbe Classes
Unit benötigt werden, kann der Compiler sie nicht entfernen. Natürlich braucht man da nicht alles, aber if-Anweisungen kann der Compiler halt nicht zur Kompilierzeit auswerten, wenn sie nicht gerade aus einem konstanten Ausdruck bestehen. Deswegen kommt eben auch alles mit in die Exe, das zur Laufzeit nicht ausgeführt wird, aber zur Kompilierzeit "referenziert/aufgerufen" wird.
Und wenn wir schon bei Dateigrößen sind. Schon mal ein VC++ Programm statisch gegen die MSVCRT und MFC gelinkt? Da werden dir die 400 KB von Delphi wie ein Segen vorkommen.