Programowanie w języku Delphi » FAQ

StringGrid - sortowanie komórek nazwiskami

  • 2006-09-28 15:21
  • 3 komentarze
  • 1358 odsłon
  • Oceń ten tekst jako pierwszy
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;

3 komentarze

milosz28 2008-07-02 10:05

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

sablik 2006-09-29 07:18

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

Oleksy_Adam 2006-09-28 15:23

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.