Hallo,
kurz die Hilfe aus Delphi 7 per Copy&Paste, eventuell hilft es Dir weiter:
Zitat von
Delphi 7-Hilfe:
TListSortCompare (Typ)
Der Typ TListSortCompare wird für Callback-Routinen verwendet, die zwei Listeneinträge miteinander vergleichen.
Unit
Classes
Delphi-Syntax:
type TListSortCompare = function (Item1, Item2: Pointer): Integer;
C++ Syntax:
typedef int __fastcall (*TListSortCompare)(void * Item1, void * Item2);
Beschreibung
TListSortCompare ist eine Vergleichsfunktion, die einen positiven Wert zurückgibt, wenn Item1 kleiner als Item2 ist. Der Rückgabewert ist Null, wenn beide Einträge gleich sind. Wenn Item1 größer als Item2 ist, ist der Rückgabewert negativ.
Wert Beschreibung
> 0 (positiv) Item1 ist kleiner als Item2
0 Item1 ist gleich Item2
< 0 (negativ) Item1 ist größer alsItem2
Zitat von
Angel4585:
Ist zwar schon bissl älter, aber ich stehe gerade vor dem selben Problem, folgende Compare Methode:
Delphi-Quellcode:
function CompareNextStart(Item1, Item2: Pointer): Integer;
begin
if(TMyItem(Item2).NextStart = 0)then Result:=1
else if(TMyItem(Item1).NextStart > TMyItem(Item2).NextStart)then Result:=0
else Result:=1;
end;
Hab allerdings keine Ahnung was genau der Wert von Result bewirkt, also was passiert wenn Result 1,0 oder -1 ist?(Die D2005 Hilfe ist [strike]etwas[/strike] grottenschlecht)
Ausserdem habe ich das gleiche Problem wie oben genannt, ich bekomme irgendwann einen Pointer übergeben welcher ins Nichts führt($16 oder so).
Hatte jemand zu dem Problem mittlerweile ne Lösung?(Möcht jetz keinen neuen Thread aufmachen da es exakt das gleiche Problem ist)
Deine Vergleichsfunktion liefert entweder 0 oder 1, aber nicht -1, liegt dort eventuell der Fehler?