Einzelnen Beitrag anzeigen

Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#1

Bester Zeitpunkt zum Zugriff auf WinControls etc.

  Alt 22. Feb 2009, 22:32
Hallo,

bisher habe ich WinControls im onCreate des jeweiligen ParentForm initialisiert.

Manche WinControls benötigen aber Daten aus einem anderen Form/DatenModul (bei mir meist nur das DatenModul). Die hab' ich dann im ParentForm.onActivate initialisiert (über Bool nur einmaliger Durchlauf der Initialisierung). Zumindest ging ich bisher davon aus, das MainForm.onActivate erst eintritt, wenn alle anderen Fenster samt enthaltener Objekte fertig initialisiert sind.

Jetzt hatte ich folgenden Fall:

MainForm mit DBGrid. Wird via Datasource/Query/Connection gefüllt, die alle in einem Datenmodul liegen.

Beim Start dann Peng... Zugriffsverletzung. Offenbar ist bei MainForm.onActivate eines der Datenzugriffs-Objekte im DatenModul noch nicht fertig initialisiert. Eine Abfrage, ob das entsprechende Datenzugriffs-Objekt bereit ist, verzögert wegen der nötigen Schleife den Programmstart erheblich.

Ich hab' zwei Alternativen getestet:

1) Timer im MainForm ruft eine Methode auf, die die Initialisierung vornimmt (die vorher in MainForm.onActivate war)
2) Application.onActivate enhält jetzt den Code von MainForm.onActivate

Beide Versionen funktionieren.

Wann ist sichergestellt, das alle Objekte aller automatisch erzeugten Fenster fertig erzeugt sind?
  Mit Zitat antworten Zitat