Вниз
Скачать: 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.022 c
3-1089884745
bon
2004-07-15 13:45
2004.08.15
TDBGridEh


3-1090452138
sashapont
2004-07-22 03:22
2004.08.15
Сумма всех ячеек


1-1091181704
alex_sc
2004-07-30 14:01
2004.08.15
Вопрос


6-1086970510
Neo09
2004-06-11 20:15
2004.08.15
Проблема с "net send"ом.


1-1091078070
seregin2
2004-07-29 09:14
2004.08.15
Как отловить изменение Clipboard




   Наверх