AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Initialisierung falsch !

Ein Thema von TERWI · begonnen am 20. Aug 2022 · letzter Beitrag vom 25. Aug 2022
Antwort Antwort
Seite 2 von 4     12 34      
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
704 Beiträge
 
Delphi 12 Athens
 
#11

AW: Initialisierung falsch !

  Alt 21. Aug 2022, 12:33

Ich ba keinen Schimmer, wo man diesn Bug ( ? ) noch suchen könnte.
Es gibt da die Property OldCreateOrder, False als Default. Vielleicht hast Du die in deinem Problemprojekt mal versehendlich auf True gesetzt...

Einen guten Punkt für die (nur einmal auszuführende) Initialisierung eines Forms zu finden ist manchmal nicht einfach. Ich habe dafür oft den OnPaint-Event des Forms verwendet. Die erste Zeile darin ist dann

  OnPaint := nil; Damit wird der Handler nur einmal aufgerufen.
Peter Below
  Mit Zitat antworten Zitat
Benutzerbild von TERWI
TERWI

Registriert seit: 29. Mär 2008
Ort: D-49626
381 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: Initialisierung falsch !

  Alt 21. Aug 2022, 13:16
... daran hatte ich auch schon gedacht und auch die Props alle durchgesehen.
OldCreateOrder ist false.

Na ja, OnPaint kommt ja relativ oft.
OnActivate m.W.n. nur wenn das Fenster den Focus bekommt.
Man könnte auch OnShow nehmen - das wäre (hier) egal.

Da ich früher zu oft auf die Nase gefallen bin, was zu initialisierende var's/Programmteile betrifft, hat sich bei mir eingebürgert:
- Alle Units/Forms de-/intialisieren im jeweiligen Create/Destroy ihre eigenen Kamellen.
- Jede Unit/Form hat für eine Fremd-Intitialisierung eine DoINIT/DoExit Prozedur, wo alles weitere wichtige zur Laufzeit übergeben wird.
- Die MainForm lädt/erzeugt alles wichtige in OnActivate (die Forms sind dann mit Create durch...) und gibt dann an alle DoINITs weiter.
Damit ist alles fertig eingerichtet und wenn die Form erscheint, ist alles passend da.

Bei meinem Problem hier kam eben das OnActivate der Main VOR ( ! ) dem Create der Form LAV.
Da fehlten dann ein paar elementare Zuweisungen, so dass es beim Programmstart wie Beenden dauernd mehrfach "geknallt" hat.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Initialisierung falsch !

  Alt 21. Aug 2022, 13:51
Zitat:
Ja, visible ist true.
Selbst Schuld, denn hier ist die Form bereits im Inherited des Create und somit auch lange vor dem OnCreate sichtbar, weil es bereits sichtbar geladen wird.


In fast 30 Jahren hätte es aber genug Zeit gegeben, sich mal mit dem Debugger zu beschäftigen.

IDE (Texteditor mit Highlighting), Compiler und Debugger in einer Anwendung, das war gerade der große Fortschritt, den uns Turbo Pascal und Delphi gebracht haben.
$2B or not $2B

Geändert von himitsu (21. Aug 2022 um 13:56 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von TERWI
TERWI

Registriert seit: 29. Mär 2008
Ort: D-49626
381 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: Initialisierung falsch !

  Alt 21. Aug 2022, 14:13
Die goldene F1-Taste geht heute an ........ himitsu !

Asche auf mein Haupt - da hatte ich wohl nicht richtig hingeguckt, bzw. in der falschen Form nachgesehen.
Im der alten Main ist visinle = true, in der neuen false (default ?!).
Kann mich nicht erinnern, das mal bewusst geändert zu haben.
Mal juxeshalber auf true gesetzt und bumms.

Das dieses (für mich) eher unscheinbare Property die Reihenfolge derart beeinflusst, war mir bisher nicht bekannt.
Man lernt nie aus ....
Auf jeden Fall hat das hier an 2 Tagen ne Menge Ärger und Arbeit gemacht - vergessen werde ich das sicher nicht mehr !

(... der Debugger hätte mir wahrscheinlich vom Sinn her das gleiche gesagt wie mein LOG, aber auch nicht warum ...)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Initialisierung falsch !

  Alt 21. Aug 2022, 14:30
Ja, früher war es mal defult True ... seit 'ner Weile (jahrzehnte) ist es nun Default false.

Genauso wie sich die Ausführung von OnCreate verschoben hat (jetzt im AfterCreate und früher schon im Create) ... beim Upgrade alter Projekte/Forms in neuen Delphi wird daher das neue OldCreateOrder auf True gesetzt (was aber per Default auf False steht).
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: Initialisierung falsch !

  Alt 21. Aug 2022, 14:53
(... der Debugger hätte mir wahrscheinlich vom Sinn her das gleiche gesagt wie mein LOG, aber auch nicht warum ...)
Doch, da siehst du genau, wo das ausgelöst wird:

formpropertyvisible.png

Eben bereits beim Erstellen, weil die Form Visible direkt im FormStatus hat. Hättest du das gepostet, hätte es dir direkt jemand sagen können.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von TERWI
TERWI

Registriert seit: 29. Mär 2008
Ort: D-49626
381 Beiträge
 
Delphi 11 Alexandria
 
#17

AW: Initialisierung falsch !

  Alt 21. Aug 2022, 15:58
Hätte ich das gewusst, was visible da im Detail alles macht, hätte es diesen Fred gar nicht gegeben.
Ich war bisher der Meinung, das beeinflusst nur die Anzeige selbst.
... nun bin ich ja wieder etwas schlauer.
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#18

AW: Initialisierung falsch !

  Alt 21. Aug 2022, 16:01
Zitat:
Ich war bisher der Meinung, das beeinflusst nur die Anzeige selbst.
Tja die IDE ist schon sehr suspekt.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#19

AW: Initialisierung falsch !

  Alt 21. Aug 2022, 16:07
Hätte ich das gewusst, was visible da im Detail alles macht, hätte es diesen Fred gar nicht gegeben.
Ich war bisher der Meinung, das beeinflusst nur die Anzeige selbst.
Es beeinflusst ja auch nur die Anzeige - genauer, ob das Form beim Create angezeigt wird oder nicht. Indirekt beeinflusst es damit halt auch den Zeitpunkt der Anzeige. Das hat aber nichts mit der IDE zu tun (geschieht ja eh alles zur Runtime), sondern mit dem DFM-Streaming. Was das FormCreate betrifft spielt das OldCreateOrder dann ja auch noch eine Rolle bezüglich der Aufruf-Reihenfolge. Niemand hat behauptet dass Programmieren einfach sei.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#20

AW: Initialisierung falsch !

  Alt 21. Aug 2022, 16:10
Zitat:
Das hat aber nichts mit der IDE zu tun (geschieht ja eh alles zur Runtime)
Sicher ?

Fakt ist doch das es innerhalb der IDE definiert Eingestellt werden muß.
Inwiefern hat es dann mit der IDE nichts zu tun.

Wegen dieser Zwiespältigkeit arbeite ich lieber ohne soweit dies möglich ist.
Ok! Bin raus Thema scheint ja erledigt zu sein.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz