Danke, das Beispiel hilft schon mal!
Aber wie sieht denn die TComparefunc aus? Muss die in einer abgeleiteten Klasse als Methode definiert werden oder muss die außerhalb der Klasse definiert werden? Wie muss die Parameterliste aussehen? Es gibt da verschiedene Parameterlisten. In Deinem Beispiel ist die Funktion nicht mit aufgeführt. Mir genügt hier die allereinfachste Variante. Ich will zuerst mal lernen wie man so eine Comparefunc überhaupt definiert, vom Urschleim an, wie ein Anfänger, danach erst kann ich den nächsten Schritt gehen. Und wegen meines Usernamen, zuerst für Windows, später auch für Linux. Scheint ja recht systemabhängig zu sein das alles. Will zuerst also die einfachste funktionierende Variante für Windows in einer TFPGObjectList<TIrgendein_Typ>; Dein Beispiel ist für eine TFPGList. Ist da ein Unterschied in der Funktionskopf Definition der Comparefunc?
Ist dieser Funktionskopf für die TFPGList korrekt:
function Comparefunc(Item1,Item2: Pointer): Integer; ? Oder muss der Funktionskopf für die Comparefunc anders definiert werden?
Dieser Typ TIrgendein_Typ soll ein Klassentyp sein, dessen Vergleichsfeld ich mit TIrgendein_Typ(Item).Vergleichsfeld ansprechen will, so das auch geht. Wie muss die zugehörige Comparefunc da aussehen, das Beispiel zeigt ja schon mal die Übergabe an die Sort Methode, MIT dem @ Zeichen am Anfang der Funktion???
Was ich erreichen will ist zuerst mal die korrekte Syntax zu verstehen und zu schreiben. Was sollte ich damit machen können, wenn ich da schon Probleme habe.
Die Übergabe der Comparefunc an die Sort Methode ist schon mal gezeigt. Mir fehlt aber nun noch der Funktionskopf für die Compare Funktion. Laut Lazarus Doku gibt es da mehrere Versionen je nach Listenobjekttyp. Welche davon brauche ich für die TFPGList und welche für die TFPGObjectList?