Zitat von
chaosben:
Welche weiteren Packages nötig sind, stellt der Compiler(?)/die
IDE fest. Entweder sagt der Compiler, das er die
Unit XYZ implizit einkompiliert hat, was sehr sehr unschön ist, weil es dann irgendwann eine Kollision mit einem
Package gibt, das diese Datei auch beinhaltet. Oder die
IDE sagt: Ha! Du musst noch folgenden Packages requiren damit es klappt. Das ist der beste Fall
Was die Fileendungen bedeuten weis ich schon. Aber genau so wie beschrieben, verhält sich der Compiler leider nicht.
Die requires Anweisung gibt es nur in Packages.
Ich bin gerade dabei mit einem Testprojekt zu basteln, um die Frage selbst zu beantworten
und es ist leider so, wie ich befürchtet habe.
Ich bin inzwischen soweit, das das
Package tatsächlich nur im Mode mit Laufzeitbibliothek verwendet wird.
Auch wenn in der Liste nicht angegeben, werden von diesem
Package implizit benötigte Packages (z.B.
rtl,
vcl)
stillschweigend als Laufzeitpackages deklariert und beim Programmstart nachgeladen.
Ist der Schalter Laufzeit nicht gesetzt werden
BPL und DCR ignoriert. Der Compiler benötigt dann die in diesem
Package enthaltenen
DCU.
Es gibt allerdings eine wenig praktikable Ausnahme. Die teste ich gerade.
Wenn das
Package als nicht visible Komponente installiert wird, dann verhält sich der Compiler wie erwartet und verwendet nur
BPL/DCP.
Es ist aber bestimmt kein guter Programmierstil ( in Delphi) Programmkomponenten als nicht visible Komponenten in der
IDE einzubinden.
In den Projekteinstellungen ist es leider nicht möglich projektbezogene Komponenten zu verwenden. (In VS geht das)
Gruß
Peter