Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: FMX Frame zur Laufzeit erstellen und Button darauf anklicken

  Alt 7. Jan 2022, 10:21
Ja, man kann den Construktor wie eine Funktion aufrufen, aber wenn, dann muß man es auch richtig machen und die Instanz vorher natürlich erst erstellen.
Delphi-Quellcode:
Variable := TComponent(TKlasse.NewInstance);
Variable.Create(Besitzer);
Die VCL/FMX machen es z.B. so, damit Selbstreferenzen und verschachtelte Forms/Datenmoduile/Frames sich bereits während des Erstellens in den kranken globalen Variablen finden können.

Richtig und Einfacher ist immer
Variable := TKlasse.Create(Besitzer);



Gut, es ist zwar blöd unpraktisch, dass bei ObjektVariable.Create(); keine Compilerwarnung kommt, dass man es nicht so machen "sollte",
aber das ist egal, da niemals jemand die Compilerwarnungen ließt, denn sonst wäre dir
Zitat:
[DCC Warnung] Unit3.pas(30): W1036 Variable 'myDings' ist möglicherweise nicht initialisiert worden
bestimmt aufgefallen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 7. Jan 2022 um 10:29 Uhr)
  Mit Zitat antworten Zitat