Einzelnen Beitrag anzeigen

hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Sortierung bei TList. Ich wende es an verstehe es aber n

  Alt 22. Nov 2007, 15:01
Hallo,

TList.Sort erwartet von dir, dass du ihm sagst,
wie deine Sortierung aussieht.

Sort erwartet deshalb eine Funktion, deren Parameter
von Sort vorgegeben sind,
d.h. Sort geht davon aus, dass die ihm eine Compare wie folgt übergibst

function Compare(Item1 : Pointer; Item2 : Pointer) : Integer;

Item1 und Item2 müssen Pointer sein,
weil TList deine Objekte nicht kennt.


Sort benutzt intern jetzt Quicksort
und ruft bei jedem Vergleich zweier Objekte deine Methode auf.

Wenn du Langeweile hast, kannst du ja auf Basis von Interfaces
etwas ähnliches aufbauen.

Eine TInterfaceList würde dann nur Objekte speichern, die ein ISortInterface
unterstützen und dort könnte man dann die Compare rienpacken.

Um jetzt möglichst allgemein zu bleiben
und da es damals (Borland Pascal) keine Interfaces gab,
blieb nur der Umweg über die Methode.


Heiko
Heiko
  Mit Zitat antworten Zitat