Delphi+TListview

Mit TListview kann man ja so eine Art Explorer herstellen. Wie kann ich aber z.B. eine bestimmte Spalte (z.B. Größe) sortieren ? (Nicht nur die erste Spalte!) Muss ich dafür erst eine Sortier-Prozedur schreiben oder gibt es einen Befehl dafür?

Danke
Mario

Hi Mario,
Du mußt die Prozedur Compare des Listview füllen. Dort vergleichst Du die beiden übergebenen Einträge Item1 und Item2 miteinander. In den Parameter Compare kommt dann 0 für Item1=Item2, -1 für Item1>Item2 oder 1 für Item1
procedure TArchiveDlg.ListViewFilesCompare(Sender: TObject; Item1,
Item2: TListItem; Data: Integer; var Compare: Integer);
begin
Compare := 0;
case FSortView of
0 : Compare := ANSICompareText(Item1.Caption, Item2.Caption);
1 : if StrToDateTime(Item1.SubItems.Strings[0]) > StrToDateTime(Item2.SubItems.Strings[0]) then
Compare := -1 else Compare := 1;
2 : if StrToIntDef(Item1.SubItems.Strings[1], 0) > StrToIntDef(Item2.SubItems.Strings[1], 0) then
Compare := -1 else Compare := 1;
end;
end;

Um die Sortierung zu starten rufst Du die Methode Alphasort des Listview auf…

Gruß Thomas