Mam dziwny problem. Mam ListView ze stylem Raport. Są w nim 4 kolumny. W pierwszych 3 jest text który się ładnie sortuje, a w 4 są cyfry, które już się nie sortują :/ Nie mam pojęcia jak to zrobić, może ktoś z Was ma jakiś pomysł?
Kod:
var (globalny)
L3ColumnToSort: integer;
procedure TForm1.ListView1ColumnClick(Sender: TObject;
Column: TListColumn);
begin
if L3ColumnToSort = Column.Index then begin
if L3ColumnToSort = 0 then L3ColumnToSort := 4;
if L3ColumnToSort = 1 then L3ColumnToSort := 5;
if L3ColumnToSort = 2 then L3ColumnToSort := 6;
if L3ColumnToSort = 3 then L3ColumnToSort := 7;
end else L3ColumnToSort := Column.Index;
ListView1.AlphaSort;
end;
procedure TForm1.ListView1Compare(Sender: TObject; Item1, Item2: TListItem;
Data: Integer; var Compare: Integer);
begin
if L3ColumnToSort = 0 then
Compare := CompareText(Item1.Caption, Item2.Caption);
if L3ColumnToSort = 1 then
Compare := CompareText(Item1.SubItems[0], Item2.SubItems[0]);
if L3ColumnToSort = 2 then
Compare := CompareText(Item1.SubItems[1], Item2.SubItems[1]);
if L3ColumnToSort = 3 then
Compare := CompareText(Item1.SubItems[2], Item2.SubItems[2]);
if L3ColumnToSort = 4 then
Compare := CompareText(Item2.Caption, Item1.Caption);
if L3ColumnToSort = 5 then
Compare := CompareText(Item2.SubItems[0], Item1.SubItems[0]);
if L3ColumnToSort = 6 then
Compare := CompareText(Item2.SubItems[1], Item1.SubItems[1]);
if L3ColumnToSort = 7 then
Compare := CompareText(Item2.SubItems[2], Item1.SubItems[2]);
end;