Hi zusammen
Ich habe da ein kleines Problem mit Methodenüberlagerung
: Sobald ich in einer Funkton die Verarbeitung ihrer Superklasse aufrufe bzw. Inherited, bringt der Compiler die Fehlerbildung: Incompatible types
Ändere ich die Funktion in einer Prozedur und lasse somit den Rückgabewert weg, funktioniert es! Kann ich in einer Funktion kein Inherited aufrufen? Wenn ja, wieso nicht? Natürlich kann ich dieses Problem mit einem Var-Parameter und einer Prozedur lösen, es interessiert mich aber, ob das wirklich nicht geht!
Hier ein gekürztes Beispiel:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:
| TKlasse1 = class(TObject) function test: Boolean; Virtual; end;
TKlasse2 = class(TKlasse1) function test: Boolean; Override; end;
implementation
function TKlasse1.test: Boolean; begin Result := False; Mach etwas; Result := True; end;
function TKlasse2.text: Boolean; begin Result := False; Mach etwas anderes; Result := True; Inherited; end; |
Ich bedanke mich für jede Antwort!!
Grüsse Dominic