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.