Zitat von
himitsu:
Das Problem ist ja, daß dieses nur mit Klassen geht, welche über sowas verfügen, da man ja nur die Klassen registrieren kann/müßte und ohne einen solchen Constructor lassen sich "normale" Klassen nicht automatisch erstellen (.Create).
Delphi-Quellcode:
var registriert: array of TComponent;
objekt := registriert[i].Create;
Das ist so aber nicht ganz korrekt, wenn überhaupt, musst du dir Referenzen auf TComponentClass speichern, und darauf ein Create aufrufen. Und das geht auch, wenn der Konstruktor der Basis-Klasse nicht virtual wäre. Das Problem wird dann nur sein, dass ein spezieller Konstruktor beim Erstellen eines Objekts nicht aufgerufen wird. Das kann aber auch passieren, wenn irgendein Spaßvogel von TComponent ableitet und mal fix ein reintroduce statt einem override hinter seinen Konstuktor schreibt. Ok, isser selber schuld dann, aber ich wollte nur die Möglichkeit aufzeigen.