Ok, gelöst: In der Sortfunktion mit Random zu arbeiten, ist offenbar keine gute Idee. Scheinbar haut das u.U. die Items etwas durcheinander.
Ich habe einfach mal dem Tag der Einträge einen Zufallswert zugewiesen und so funktioniert das sofort perfekt.
Delphi-Quellcode:
if CL.Count > 1 then
begin
for I := 0 to CL.Count - 1 do
CL.Competitor(I).Tag := Random($FFFF);
CL.Items.Sort(ListSortCompetitors);
end;
Auch Result immer 0 zuzuweisen führt zu einer gewissen zufälligen Sortierung. Allerdings sind davon nicht alle Einträge betroffen.
@Blup
CL.Competitor(I) castet letztlich CL.Items[I].
Ich kann leider nicht mit Generics arbeiten, da die
RTTI mit generischen Klassen nicht ausreichend zurecht kommt und ích die Objekte serialisiere.