Hier ist die richtige Antwort.
Der richtige Weg, dies zu tun, ist wie oben erwähnt:
%Vor%Die Art und Weise, wie Sie es tun möchten, wird von der Sprache nicht unterstützt.
Also letztlich die Antwort auf Ihre Frage "Warum funktioniert das nicht auch?" liegt daran, dass die Sprache nicht so gestaltet ist.
Die automatische Übergabe von Parametern funktioniert nicht, wenn Sie das Ergebnis der Methode benötigen. Sie müssen den Namen der Methode und die Parameter eingeben, sorry.
Warum es nicht unterstützt wird, schrieb Hallvard ein plausible Erklärung vor einigen Jahren in seinem Blog:
Ein Vorbehalt mit dem "geerbt"; Syntax ist, dass es für Funktionen nicht unterstützt wird. Zum Funktionen müssen Sie die explizite Syntax einschließlich des Methodennamens und beliebiger Argumente verwenden. Zum Beispiel:
[etwas Code]
Das mag im Delphi-Sprachdesign wie ein Versehen aussehen, aber ich denke schon beraten. Das Grundprinzip dahinter ist wahrscheinlich, dass wenn TMyClass.MethodC abstrakt ist (oder in der Zukunft abstrakt gemacht), wird die Ergebniszuweisung in der abgeleiteten Klasse sein entfernt, und so hat Ergebnis plötzlich undefinierten Wert. Dies würde sicherlich subtil verursachen Fehler.
Zuerst dachte ich, du könntest einfach inherited
benutzen, wenn du an dem Ergebnis der Funktion nicht interessiert bist, das scheint nicht der Fall zu sein. Der Aufruf geerbter Funktionsmethoden erfordert den Methodennamen und die Parameter. So ist es halt. Sie müssen auch den Methodennamen angeben, wenn Sie andere Parameter als die aktuelle Methode übergeben oder wenn Sie eine völlig andere Methode aufrufen.
Scheint, dass die Delphi-Dokumentationen noch ein schwarzes Loch haben ... (Oooooh, was sind die guten Neuigkeiten dazu?)
Meine Tests zeigen an, dass das Schlüsselwort geerbt ohne etwas verwendet wird, nachdem es nur für die Methoden Konstruktor, Destruktor und Prozedur funktioniert. Auf Funktion -Methoden funktioniert es nicht AT ALL .
Allerdings habe ich es nie entdeckt, weil ich die geerbte Methode in der Regel auch dann aufrufen möchte, wenn ich sie nicht brauche (Motivation: Strg + Linksklick verwenden zu können es und folgen Sie dem Fluss des Codes einfacher ohne Debugging).
Tags und Links delphi