Einzelnen Beitrag anzeigen

Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#10

Re: Klassen mit virtuellem Constructor

  Alt 8. Dez 2009, 06:31
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.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat