Alle der Dokumentation Versionen, einschließlich the one most up to date gibt die folgende Klasse/record Helfer Syntax:Was ist der Zweck der "Vorfahrenliste" in der Klassenhelfer-Syntax? Wo ist es dokumentiert? Gibt es ein Anwendungsbeispiel?
type
identifierName = class|record helper [(ancestor list)] for TypeIdentifierName
memberList
end;
Und es erklärt nur das, was ...
Die Ahnenliste ist optional. Es kann nur für den Klassenhelfer angegeben werden.
... und geht nicht weiter in die Details. Ein Anwendungsbeispiel im Rest der Dokumentationsthematik nutzt lediglich die Tatsache aus, was ancestor list
optional ist. Der gesamte EMBA-Code, den ich gesehen habe, sowie der gesamte Code von Drittanbietern verwenden diesen ancestor list
-Teil nicht.
So sind meine Fragen im Titel beschrieben:
- Was ist der Zweck von
ancestor list
in der Klasse Helfer Syntax? - Wo ist es dokumentiert?
- Gibt es Anwendungsbeispiele?
FWIW, der abgeleitete Objekthelfer kann auch ein Helfer für eine *** abgeleitete *** Klasse sein. IOW, das funktioniert auch (kompiliert und erzeugt erwartetes Ergebnis): 'TObjectHelperAgain = Klassenhelfer (TObjectHelper) für TList'. Habe es einfach ausprobiert. Natürlich würde ich es dann 'TListHelper' nennen. –
@rudy vermutlich der Compiler würde überprüfen, dass die Helpees durch Vererbung in der offensichtlichen Weise verwandt sind. –
Aber 'TStreamHelper = Klassenhelfer (TListHelper) für TStream' wird nicht kompiliert. Es muss also dieselbe oder eine abgeleitete Klasse sein, der geholfen wird, und "TSTream" leitet sich nicht von "TList" ab. –