Forum: Object-Pascal / Delphi-Language
Delphi
by Blup,
19. Jun 2009
Auch wenn ohne virtual/override nur der orginale Konstruktor aufgerufen wird, es wird trotzdem ein TIEdit erstellt.
Das heißt, es wird ausreichend Speicher für alle Variablen reserviert und ClassType ist TIEdit.
Deshalb stehen auch alle Methoden von TIEdit zur Verfügung.
Das Factory-Entwurfsmuster ist aber nur mit Konstruktoren virtual/override sinnvoll.
...
Forum: Object-Pascal / Delphi-Language
Delphi
by Blup,
19. Jun 2009
Ich muss wiedersprechen, es wird eine Instanze von TIEdit erstellt.
Aber die Zeile mit dem cast ist falsch.
Du wandelst eine Klassenvariable in eine Instanzvariable um und weist einem Property (kein class Property) etwas zu?
Das war wohl so gemeint:
if IBasic is TIEdit then
TIEdit(IBasic).Value := AValue;