Man kann auch Typschranken für Generics angeben, das müsste dann aber so aussehen
TMyClass<A:TAncestor> = Class(TAncestor)
Das legt fest, dass alle Klassen mit denen du deinen generische Klasse initialisierst vom Typ TAncester oder eine davon abgeleitete Klasse sein muss.
Wenn du class als Schranke angibst kannste du das auch gleich weglassen.
Zitat:
Denn diese Klasse soll selber nur eine gewisse Funktionalität für andere, davon abgeleitete Klassen bereitstellen, aber ich wollte den anderen Klassen nicht die Möglichkeit nehmen, jeweil einen "anderen" Vorfahren zu nutzen.
Ich weis nicht ob ich dich richtig verstanden habe, aber du hast doch dann immer noch das "Problem", dass du TAncester statisch angeben musst.
EDIT: Aber andereseits, wenn du nur Funktionalität für Klassen die von der Klasse selbst abgeleietet sind anbieten möchtest brauchst du doch garkeine generics, da ein Obertyp der Klasse bekannst ist und die dynamische Bindung den Rest erledigen sollte.