Ich erstelle im Initializationsteil einer
Unit (UnitA) eine Liste, in der ich erzeugte Instanzen einer Klasse verwalte.
In einer anderen
Unit-Initalisierung (UnitB) erstelle ich solch eine Instanz.
Wie kann ich es erreichen, dass UnitA (beide sind in einem gemeinsamen
Package) IMMER zuerst initialisiert wird?
In einem anderen Beitrag (die Frage betraf aber Lazarus) hat himitsu geschrieben:
Zitat:
Die Punkte 1 und 2 sind z.B. Delphi zwar auch "unberechenbar", aber es steht definitiv fest, daß alle Units, welche im Interface eingebunden werden immer vor der Initialization initialisiert werden.
Nur bei Units, welche erst in der Implementation eingebunden werden, ist diesbezüglich keine Garantie festgelegt.
Ansonsten habe ich widersprüchliche Aussagen dazu gefunden.
Ich habe UnitA in der interface Uses-Liste von UnitB aufgenommen.
Auch habe ich testweise im initialization-Teil von UnitB
TMyClass.Create(nil).Free
aufgenommen.
Damit dachte ich, UnitA.Initialization erzwingen zu können.
Die Klasseninstanz wird zwar erzeugt, die
Unit-Initialisierung aber (noch) nicht aufgerufen.