Вниз
Скачать: CL | DM;

Сортировка в StringGrid   Найти похожие ветки 

 
Veetyok   (2004-08-02 17:11) [0]

Подскажите, как отсортировать таблицу по какому-нибудь столбцу и можно ли это елать нажимая на шапку StringGrida?


 
Asinus   (2004-08-04 03:27) [1]

Есть готовые компоненты. Велосипед изобретать не обязательно. Посмотри на http://www.torry.net


 
SelloutS   (2004-08-04 04:48) [2]


procedure GridMSort_(AGrid: TStringGrid; const SortField: integer);

procedure ExchangeItems(Index1, Index2: Integer);
var
  i: integer;
  T: string;
begin
  for i := 0 to AGrid.ColCount - 1 do
  begin
    T := AGrid.Cells[i, Index1];
    AGrid.Cells[i, Index1] := AGrid.Cells[i, Index2];
    AGrid.Cells[i, Index2] := T;
  end;
end;

procedure QuickSort(L, R: integer);
var
  I, J: Integer;
  P: string;
begin
  repeat
    I := L;
    J := R;
    P :=AGrid.Cells[SortField, (L+R) shr 1];
    repeat
      begin
        while CompareText(AnsiUpperCase(AGrid.Cells[SortField, I]),
                           AnsiUpperCase(P)) < 0 do
        Inc(I);
        while CompareText(AnsiUpperCase(AGrid.Cells[SortField, J]),
                          AnsiUpperCase(P)) > 0 do
        Dec(J);
      end;
      if I <= J then
      begin
        ExchangeItems(I, J);
        Inc(I);
        Dec(J);
      end;
    until I > J;
    if L < J then QuickSort(L, J);
    L := I;
  until I >= R;
end;

begin
if AGrid.RowCount > 1 then QuickSort(0, AGrid.RowCount-1);
end;


пример сортировки по первой колонки:
GridMSort_(StringGrid1, 0);
по второй соответственно:
GridMSort_(StringGrid1, 1);

и т.д



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.018 c
3-1090581669
Chery
2004-07-23 15:21
2004.08.15
Как организовать цикл таблицам (компоненты) Table1, ... Table10?


1-1091491749
Almaz
2004-08-03 04:09
2004.08.15
Выбор Published свойств, определенных в конкретном классе


1-1091096635
Прямой
2004-07-29 14:23
2004.08.15
OpenDialog


1-1091423305
Марат
2004-08-02 09:08
2004.08.15
Ehlib


3-1089877633
just
2004-07-15 11:47
2004.08.15
MS SQL + ADO




   Наверх