Registriert seit: 1. Feb 2018
3.691 Beiträge
Delphi 11 Alexandria
|
AW: Beim Programmstart werden alle Units abgearbeitet
17. Mai 2018, 00:11
Da Du über Application.CreateForm() FormX erzeugst brauchst Du Dir um sowas keine Gedanken machen, das verwaltet alles die Application Klasse. Worüber ich mir gerade eher Gedanken mache ist, was passiert wenn Du den Knopf zum Anzeigen von FormX mehrmals drückst, ob so Speicherlecks entstehen je nachdem was die Form so alles bereit hält? Also ich pers. würde Application.CreateForm() nur einmal benutzen und danach über Visible := True oder Show/ShowModal steuern. FormX beibringen das wenn es geschlossen wird lediglich ein Visible := False ausgeführt wird. Auf diese Weise wird nicht wieder und wieder die Form neu generiert. Ich hoffe das ich mich Verständlich ausgedrückt habe.
Da Du geschrieben hast das Deine FormX sehr lange braucht beim Programm-Start, vielleicht wäre es ja auch Sinnvoll einen Thread zu erstellen der in Deiner Hauptform ausgeführt wird, der erstellt alle Application.CreateForm() im Hintergrund und wenn Du die dann Anzeigen willst sind sie bereits geladen und schwupps aufm Bildschirm.
Das mit Deiner ShowMessage() kannst Du nur umgehen indem Du den FormCreate/Initialization Code in eine eigene Prozedur auslagerst und bei Bedarf diese Prozedure aus Deiner Hauptform aufrufen, das könnte zum Beispiel in dem Thread automatisch erledigt werden.
Der Vorteil wäre halt das Du von der Bedienung her kaum einen Unterschied spürst, alle Formulare sofort ansprechbar sind und Dein Programm beim Starten schön schnell sein könnte.
Es kommt halt auf Dein Programm und Sinn und Zweck an, das sollte halt nur ein Szenario abdecken.
|