Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Zugriff auf Formular währen OnShow

  Alt 24. Apr 2015, 21:38
Wie du in deiner DPR sieht, werden die anderen "automatisch" erstellten Forms nach deiner MainForm erstellt, also beim Erstellen der MainForm kann das Andere noch garnicht vorhanden sein.
(MainForm ist standardmäßig die erste Form, welche per FormCreate erstellt wird)

  • Entweder du erstellst andere Forms dynamisch (also manuelle) nur/erst/schon dort, wo du sie verwenden willst.
  • Oder du verfrachtest die nötigen Funktionen in ein automatisch erstelltes Datenmodul aus (welches natürlich vor der Form erstellt werden sollte )
  • Oder du greifst eben nicht bereist im OnFormCreate auf das andere Zeugs zu, sondern erst in einem späteren Event, wenn dann alles da ist.
  • Oder du fummelst an der Erstellungsreihenfolge dran rum. (nicht vergessen dabei die MainForm neu zuzuweisen)
  • Oder ....

PS: Daß es in TForm.Caption TControl.Caption nicht knallt, ist verständlich, denn das benutzt nur WinAPI-Zugriffe auf das interne Windows-Objekt und diese Zugriffe sind in TControl.Perform abgesichert, denn dort wird der Befehl nur ausgeführt, wenn Self <> nil.
Wenn das Objekt also (noch) nicht existiert, die böse globale Variable noch nil ist, dann wird nicht versucht auf Eigenschaften (interne Felder/Variablen) des Objekts zuzugreifen, wie z.B. das Form-Handle und schon kann es da nicht knallen.




[edit]
Prüfe mal, ob Visible der MainForm auf False steht, denn sonst wird sie eventuell sofort angezeigt, während sie erstellt wird.

Und OldCreateOrder könnte man sich auch mal ansehn.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (24. Apr 2015 um 21:47 Uhr)
  Mit Zitat antworten Zitat