Result := T(T.NewInstance);
Result.Create('Hello World');
Funktioniert in der Tat, fühlt sich aber irgendwie fies an
Alles im grünen Bereich. Nicht anders macht es Delphi in der
VCL.
Auszug aus der Classes.pas:
Result := TComponent(ComponentClass.NewInstance);
[...snip...]
Result.Create(Owner);
Möglich, dass es ein Problem gibt wenn NewInstance überschrieben worden ist. Das wäre ggf. noch zu klären. In der Praxis ist mir das aber noch so gut wie nie untergekommen, selber hatte ich in mehr als 10 Jahren nicht ein einziges mal einen Grund dazu.