Registriert seit: 8. Dez 2015
155 Beiträge
|
AW: Beim Programmstart werden alle Units abgearbeitet
17. Mai 2018, 10:45
Bei allem Verständnis für gute Ideen, so stellt sich hier immer die Frage über wie viele Forms wir hier sprechen? Bei 100, da ist jede gute Idee besser als die andere, aber vermutlich spricht der TE von zwei oder drei Formularen. Die machen den Speicher voll, und der Ladevorgang ist nicht merklich.
Auf High-Level Niveau sind das alles tolle Ideen, aber so wie ich das verstehe hat der TE noch keine große Erfahrung mit OnCreate, OnShow und OnActivate. Jeder der Ereignisse wird zu einer unterschiedlichen Zeit und in einer Reihenfolge ausgeführt, man muss also das nehmen was da ist.
Zuerst an TE, es gibt kein Ereignis das etwas ausführt wenn OnCreate fertig ist. Das Formular wird erst dann erzeugt, wenn alles in der Prozedur OnCreate abgearbeitet wurde. Eine ShowMessage in OnCrate wird also angezeigt bevor das Formular angezeigt wird. Egal ob man alle drei Formulare am Anfang erzeugt oder dynamisch später. Und Activate wird ausgeführt wenn die Applikation, bzw. Fenster den Fokus erhält. Bei ShowModal merkt man den Unterschied zu OnShow nicht, bei Show schon, denn dann erhällt das Fenster öfter den Fokus. OnShow wird jedes Mal angezeigt wenn das Fenster neu angezeigt wird.
Und sollte es nötig sein, dass das ShowMessage nur einmal angezeigt wird, kann man noch eine globale boolean Variable dafür nehmen die prüft ob es es das erste mal ist, dass ShowMessage angezeigt wird.
Man kann das Problem also auch simpel lösen. Bei drei Fenstern.
|