Ich würde es insgesamt etwas knapper so formulieren (inhaltlich auch der gleiche Vorschlag, als eindeutige "ID" den Namen zu nehmen):
Delphi-Quellcode:
function DoCompareByDate(List: TStringList; Index1, Index2: Integer): Integer;
begin
if Assigned(List) then begin
Result:=CompareValue(Integer(List.Objects[Index1]),Integer(List.Objects[Index2]));
if Result=0 then
Result:=CompareStr(List[Index1],List[Index2]);
end else
Result:=0;
end;
Mit diesen Funktionen sind viele Sortierfunktionen versehen, die ich in TObjectList oder TList benutze, die sortieren hundertausende von Elementen und das geht Ratzfatz - um Geschwindigkeit müsstest du dir da eigentlich keine Sorgen machen, auch nicht bei String-Vergleichen (auch wenn natürlich ein sauberer Integer-Vergleich viel, viel schöner ist).
Bis denn
Bommel