Ik ben een programma aan het maken met een listview erin, maar nu wilde ik die laten sorteren per kolom. Dat is me ook gelukt, was simpel, maar nu het probleem:
Ik wil dus dat alle items in de listview worden omgedraaid als ik nog een keer op die kolom klik.
Ik was al zover gekomen, maar ik kan de fout niet vinden:
Alvast bedankt
Ik wil dus dat alle items in de listview worden omgedraaid als ik nog een keer op die kolom klik.
Ik was al zover gekomen, maar ik kan de fout niet vinden:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| procedure TFormPOP3.ListView1ColumnClick(Sender: TObject; Column: TListColumn);
begin
//columtosort is de kolom waar je op hebt geklikt en lastcolumntosort is de
//kolom waar je de keer ervoor op hebt geklikt
ColumnToSort := Column.Index;
ListView.AlphaSort;
end;
procedure TFormPOP3.ListView1Compare(Sender: TObject; Item1, Item2: TListItem; Data: Integer; var Compare: Integer);
var
ix: Integer;
sign: integer;
begin
ix := columntosort-1;
if LastColumnToSort = columntosort then begin
if columntosort = 0 then
Compare := sign*CompareText(Item1.Caption,Item2.Caption)
else
Compare := sign*CompareText(Item1.SubItems[ix],Item2.SubItems[ix]);
if sign = 1 then
sign := -1
else sign := 1;
end else begin
if columntosort = 0 then
Compare := CompareText(Item1.Caption,Item2.Caption)
else
Compare := CompareText(Item1.SubItems[ix],Item2.SubItems[ix]);
sign := -1;
LastColumnToSort := columntosort;
end;
end; |
Alvast bedankt