Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#16

AW: Beim Programmstart werden alle Units abgearbeitet

  Alt 17. Mai 2018, 10:10
In jedem Formular befindet sich ein ShowMessage('xyz'). Beim Starten des Programmes werden alle MessagesBoxes angezeigt, noch bevor das erste Formular angezeigt wird.

Warum ?
Wie kann man das verhindern ?
Ich möchte in jeder Unit / Formular eigene unabhängige Routinen definieren, die nicht gleich beim Programmstart ausgefürt werden sollen.
Was muss ich tun ?
Erstmal hattest du vergessen zu sagen wo das ShowMessage drin ist. (aber die Glaskugel hat es einfacher, da es nicht so viele Stellen gibt)


Der Initialisaton-Abschnitt jeder Unit wird immer beim Laden der Anwendung/DLL ausgeführt.

Constructor und OnCreate jeder Form wird immer beim Erstellen Jener ausgeführt.
Und wenn du beim Programmstart alle Forms automatisch erstellen lässt, dann ist das deine Schuld.
(Projektoptionen bzw. die zugehörigen CreateForm in der DPR)

OnShow/OnActivate wird bei jenen Forms ausgeführt, welche angezeigt werden und den Eingabefokus bekommen. (die MainForm und alle die Visible=True in der DFM haben)


Die einzige wirkliche Lösung wurde ja schon genannt: Forms erst dann dynamisch erstellen, wenn sie auch verwendet werden.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat