Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - initilisation...finalisation


Flamefire - Mi 08.07.09 16:33
Titel: initilisation...finalisation
hab ne frage zu den initilisation...finalisation abschnitten
wird das was darin steht beim starten/beenden das programmes EINMAL ausgeführt oder einmal für jedes mal wo die unit referenziert ist
wäre wichtig, da ich manche inits nicht mehrfach mach möchte (.create() ...)


jaenicke - Mi 08.07.09 16:46

Beim Starten des Programms werden die initialization Abschnitte in der Reihenfolge durchlaufen wie sie im Projektquelltext stehen, und ggf. bei in diesen Units eingebundenen noch nicht initialisierten Units ebenfalls.

Die Abschnitte werden also genau einmal beim Start / Ende durchlaufen.

Danach wird der Code nach dem begin im Projektquelltext ausgeführt, wobei dann auch die OnCreate Ereignisse dort erzeugter Formulare drankommen.


Flamefire - Mi 08.07.09 18:25

ok danke


BenBE - Do 09.07.09 08:49

Bei Units, die einen Zirkelbezug aufweisen ist darauf zu achten, dass die Reihenfolge der Ausführung der Initialization und Finalization-Abschnitte undefiniert ist. Hatte damit schon mehrfach Probleme. (Und ja: Man kann Units mit Zirkelbezügen linken, auch wenn eine Referenz davon nur im Implementation-Abschnitt steht).