Thema: Delphi Sortierung unwirksam

Einzelnen Beitrag anzeigen

Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: Sortierung unwirksam

  Alt 13. Sep 2007, 14:41
Soweit ich weiss, geht das einfacher.

Zitat von Delphi-7-Hilfe:
Mit Sort wird für die Liste ein QuickSort-Algorithmus gestartet, der auf der Vergleichsfunktion Compare basiert.

Delphi-Syntax:

procedure Sort(Compare: TListSortCompare);

C++ Syntax:

void __fastcall Sort(TListSortCompare Compare);

Beschreibung

Mit Sort können die Elemente des Arrays Items sortiert werden. Compare ist eine Vergleichsfunktion, die anzeigt, wie die Elemente sortiert sind.
Zitat von Delphi-7-Hilfe:
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 Delphi-7-Hilfe:
Der folgende Code sortiert die Objekte einer Liste in alphabetischer Reihenfolge. Dabei wird vorausgesetzt, dass die Liste nur Komponentenreferenzen enthält.
Die Funktion CompareNames führt den Vergleich der Objekte durch. Wenn der Benutzer eine Schaltfläche anklickt, wird die Sortierung ausgeführt.

function CompareNames(Item1, Item2: Pointer): Integer;
begin
Result := CompareText((Item1 as TComponent).Name, (Item2 as TComponent).Name);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
List1.Sort(@CompareNames);
end;
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat