2010-07-03 15 views

Trả lời

9

Set SortType := stData và viết

procedure TForm1.ListView1Compare(Sender: TObject; Item1, Item2: TListItem; 
    Data: Integer; var Compare: Integer); 
begin 
    Compare := StrToInt(Item1.SubItems[x]) - StrToInt(Item2.SubItems[x]) 
end; 

ví dụ. Nếu so sánh là số âm, Item1 phải đến trước Item2; nếu so sánh là dương, thì ngược lại sẽ áp dụng. Vì vậy, ví dụ này, giả định rằng SubItem [x] chứa một số nguyên, sẽ sắp xếp các mục theo giá trị số của SubItem [x].

Nếu, mặt khác, subitem [x] chứa các chuỗi, sau đó bạn có thể viết

procedure TForm1.ListView1Compare(Sender: TObject; Item1, Item2: TListItem; 
    Data: Integer; var Compare: Integer); 
begin 
    Compare := AnsiCompareText(Item1.SubItems[x], Item2.SubItems[x]); 
end;