Einzelnen Beitrag anzeigen

Sidorion

Registriert seit: 23. Jun 2005
403 Beiträge
 
#32

Re: Basisklasse und davon abgeleitet drei Standardklassen

  Alt 9. Okt 2007, 12:58
@jelly: natürlich musst Du die Methode bei einer Instanz rufen. Ich hab das T nur hingeschrieben, um zu zeigen, dass kein Cast oder Umweg über die implementierende Property notwendig ist.
Allerdings geht das nur, wenn Du eine Variable vom Typ TMyEdit hast. Ist die Variable vom Typ TEdit oder weiterer Vorgänger, musst Du erst auf das Interface casten (mit As) oder auf eine Variable vom Typ des Interfaces zuweisen (Achtung hier kommt es zu Ausnahmen wenn wirklich eine Instanz von TEdit angelegt wurde).

Ach ja: Interfaces bringen eine Referenzzählung mit (das macht schon IInterface bzw. TInterfacedObject). Willst Du diese Klassen dann benutzen, musst Du sie in eine Variable des Interfacetyps instanzieren oder in der Helperklasse die Referenzzählung unterdrücken. Steht auch irgendwo in der OH. Ansonsten wird die Inszanz gleich nach dem Konstruktoraufruf wieder weggeschmissen.
Beispiel:
Delphi-Quellcode:
Var
  iMyEdit: IMyInterface;
Begin
  iMyEdit:=TMyEdit.Create(..);
End;
Manchmal sehen Dinge, die wie Dinge aussehen wollen mehr wie Dinge aus, als Dinge
<Esmerelda Wetterwachs>
  Mit Zitat antworten Zitat