Hi folks,
ein Programm hat verschiedene Kontexte, die verschachtelt sein können aber nicht müssen. Jeder Kontext hat idealerweise drei Phasen:
- pre-condition check
- process execution
- post-condition check
Es wird Dinge geben, die optimal beim OnCreate() einer Form erledigt werden, wie z.B. die Beschaffung von Ressourcen, die nur im Kontext der Form benötigt werden. Andere Dinge werden während der gesamten Lebenszeit des Programms benötigt, welche die Lebenszeit einer oder auch aller Forms überdauern kann.
Ich behaupte, dass hier die Prüfung beim OnCreate() der Form bereits zu spät erfolgt. Ich würde die Prüfungen, anders als Thomas in Beitrag #2, aus dem Initialisierungscode einer eigenen
Unit heraus ausführen und diese
Unit an geeigneter Stelle ins Projekt einbinden.
Oft werden beim OnCreate() der MainForm Dinge erledigt, die eigentlich in den Application-Kontext gehören, wobei die annähernde Deckungsgleichheit der Lebenszyklen von Application und MainForm ausgenutzt wird. Dumm ist nur, dass man zu diesem Zeitpunkt nur noch mit brachialen Mitteln den Eintritt in die Nachrichtenschleife verhindern kann.
Freundliche Grüße