Sortowanie wedlug kolumny

0

Mam w List View takie kolumny

Nazwa|Kategoria|Status|Adres WWW

No i mam tam takie wpisy

Nazwa|Kategoria |Status |
1 |Uzytkowe |Freware |
2 |Audio |Freware |
3 |Grafika | Freware |
4 |Audio |Freware |
5 |Wygaszacz|Freware |

No i jak klikne na kolumne nazwa to sortuje mi tak jak jest wyzej.
Ale jak zrobic zeby po nacisnieciu kolumny 2 (tzn. kategoria) wpisy ustawily sie wedlug tego co tam jest?? tzn tak:

Nazwa|Kategoria |Status |
2 |Audio |Freware |
4 |Audio |Freware |
3 |Grafika | Freware |
1 |Uzytkowe |Freware |
5 |Wygaszacz|Freware |

0

Hm dokładnie ci nie powiem ale machnij to jakimś algorytmem, najlepiej weź to : s[pos('|', s)+1] w tablice i poukładaj :-)

0

A niemuglby ktos sypnac kodzikie??

0

OnColumnClick, OnCompare. Poza tym powinno coś być w arykułach/FAQ. Zawsze też możesz wpisać "sortowanie" w wyszukiwarce forum, na pewno znajdzie to co trzeba.

[dopisane]
"A nie<font color="red">_</span>m<font color="red">u</span>glby ktos sypnac kodzikie??"
"Nie" z czasownikami i podobnymi częściami mowy O S O B N O.
"mógłby" odmienia się na "m<font color="green">o</span>gę" - to wiedza z 2 klasy podstawówki.
Polskie litery do burdelu poszły? I nie wykręcać się, że nie ma czasu na naciśnięcie Alt - ja naciskam, a jakoś szybko piszę.

0

No wiem ze to zdazenie onColumnClic! Ale chodzi mi o jakas procedurke ktora by sortowala.

PS. Alt mi na kalawiaturze niezbyt pasuje. [diabel]

0

Wskazówka była poprawna tylko przed odpowiedzią należy sprawdzić co podpowiadano a nie mówić, że wiesz że OnColumnClick itd.
Przede wszystkim jak ktoś podpowiada to naciśnij wtedy F1 i wpisz właśnie to hasło.
OnColumnClick - i tam jest piękny przykład do tego co chcesz:

This example shows how to use the OnColumnClick and OnCompare events of a list view to let users sort the columns in a report-style list view by clicking on the column headers. This requires a global variable to keep track of the column that was clicked:

var ColumnToSort: Integer;

The OnColumnClick event handler sets the global variable to indicate the column to sort and calls AlphaSort:

procedure TForm1.ListView1ColumnClick(Sender: TObject; Column: TListColumn);

begin
ColumnToSort := Column.Index;
(Sender as TCustomListView).AlphaSort;
end;

The OnCompare event handler causes the list view to sort on the selected column:

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

end;

Note: This OnCompare event handler uses the global CompareText function. An application may want to use AnsiCompareText, CompareStr, or AnsiCompareStr instead, depending on whether the comparison should be case-sensitive and whether the locale should be considered.

1 użytkowników online, w tym zalogowanych: 0, gości: 1