Das ist doch genau das, was ich gemacht habe
Nein,
du hast quasi dieses
Delphi-Quellcode:
TSingleton<T> = class
...
class property Instance: T read FInstance;
...
end;
gemacht, aber nicht jenes
Delphi-Quellcode:
TSingleton<T> = class<T>
...
end;
.
Also du hast eine Klasse in einer anderen Klasse/Record verpackt.
(wobei man dort eben auch noch aufpassen muß, daß man dieses gekapselte Objekt nicht extern freigibt)
Bei mir und wenn dieser Generic so ginge, würde das Objekt von dem Singleton abgeleitet und hätte dann in sich selber diese Funktionalität aufgenommen.
Oder man leitet den Singleton von der gewünschten Klasse ab und baut dieses Verhalten dann nachträglich ein (hierfür muß man aber zusätzlich noch alle Konstruktoren überschreiben/verdecken und mit Konstrukoren besetzen, welche der dem vorhandenen TSingleton.Create entsprechen).