Einzelnen Beitrag anzeigen

Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: warum geht der code nicht(listview sort)

  Alt 23. Jan 2005, 15:29
CustomSort(nil, 0) müsste funktionieren, aber auch nur dann, wenn der aufrufenden Listview ein OnCompare Ereignis zugewiesen wurde. Mach in dein ListView1Compare mal ein ShowMessage(IntToStr(ColumnToSort)) rein und schau, ob es aufgerufen wird.

Wenn du ohne die globale Variable ColumnToSort auskommen willst, kannst du den zweiten Parameter benutzen.

Delphi-Quellcode:
procedure TForm1.ListView1ColumnClick(Sender: TObject;
  Column: TListColumn);
begin
  (Sender as TListView).CustomSort(nil, Column.Index);
end;

procedure TForm1.ListView1Compare(Sender: TObject; Item1, Item2: TListItem; Data: Integer; var Compare: Integer);
var
  ix: Integer;
begin
  if Data = 0 then
    Compare := CompareText(Item1.Caption,Item2.Caption)
  else begin
   ix := Data - 1;
   Compare := CompareText(Item1.SubItems[ix],Item2.SubItems[ix]);
  end;

end;
Dani H.
At Least I Can Say I Tried
  Mit Zitat antworten Zitat