Delphi FAQ

StringGrid - sortowanie komórek nazwiskami

sablik

Witam to jest przykład sortowania stringgrida według nazwisk w jednej z kolumn.

procedure TForm1.RadioButton16Click(Sender: TObject);
var
i,j : integer;
begin
StringGrid1.RowCount:=koniec+1;
 
For J:=1 To koniec-2 Do // normalnie jest -1 ale ja dodałem pomocniczą na koniec
  For I:=1 To koniec-2 Do
    If StringGrid1.cells[1,i]>StringGrid1.cells[1,i+1] Then
      Begin
        StringGrid1.Rows[koniec+1]:=StringGrid1.Rows[i];
        StringGrid1.Rows[i]:=StringGrid1.Rows[i+1];
        StringGrid1.Rows[i+1]:=StringGrid1.Rows[koniec+1];
       End;
 
StringGrid1.RowCount:=koniec;
//Przykład sortowania
{
For J:=1 To n-1 Do
  For I:=1 To n-1 Do
    If Tab[I]>Tab[I+1] Then
      Begin
        Pom:=Tab[I];
        Tab[I]:=Tab[I+1];
        Tab[I+1]:=Pom;
      End;
} end;
 
FAQ

3 komentarzy

przydałoby się chociaż to trochę opisać... a przynajmniej zmienne, które są niezdefiniowane w tym przykładzie (szczególnie zmienna 'koniec')... no chyba, że jest to ComponentCount... tylko dlaczego w takim bądź razie ma nazwę koniec i dlaczego -2? pozdrawiam

Nie bardzo rozumię pretensji.
Mam zadanie posortować wiersze zależenie od zawartości kolumny 1 lub 2 lub innej, nie znalazłem nigdzie przykładu, wymyśliłem jak to zrobić i pokazuje innym przykład, nie zamierzam rozwiązywać za innych ich zadań bo w każdej aplikacji są inne a to jest prosto pokazana idea rozwiazania.
Jak chcesz zrobić uniwersalną procedurę to zapraszam mi taka w moim programie całkowicie wystarczyła, zależnie od naciśnietej opcji soruję według nazwisk, zmiany czy stanowiska pracy.... pozdrawiam

A dlaczego nazwisko musi być w pierwszej kolumnie. Zrób uniwersalną procedurę, która mo możliwość sortowania rosnąco-malejąco, wybór kolumny, sortowanie siatki wg kolumny lub sortowanie tylko kolumny. Ogólnie kiepskie.