Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Reise von Berlin nach Athens

  Alt 19. Aug 2024, 12:29
Wenn du das dort, an dieser Stelle, änderst, dann wird/kann kann es passieren, dass OnCreate doppelt ausgeführt wird, im alten Delphi.
Im Constructor, da der den Wert aus DFM beachtet wird, dann schreibt Loaded es um und AfterConstruction sieht den neuen Wert und macht es nochmal.
Von wie altem Delphi reden wir denn hier? Ich habe das konkret bei Delphi 5, 7 und 10 überprüft (also in der DFM steht dann OldCreateOrder = True): Das OldCreateOrder wird immer erst nach dem Loaded ausgewertet (würde sonst ja auch keinen Sinn ergeben, den Wert in die DFM zu schreiben).

Selbst wenn man den Constructer überschreibt, ist vor dem inherited noch keine DFM geladen und nach dem inherited das Loaded bereits ausgeführt. Damit is Loaded eine sichere Stelle den Wert passend zu setzen.

Übrigens ist das Verfahren keine echte (visuelle) Formvererbung, da ja alle Forms weiterhin von TForm abgeleitet bleiben und in der DFM steht auch object und nicht inherited. Man muss nur die Unit in die davor stehende uses-Anweisung setzen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat