Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.15;
Скачать: 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 вся ветка

Текущий архив: 2004.08.15;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.042 c
14-1090879877
maxx
2004-07-27 02:11
2004.08.15
пару лёгких вопросов. HELP


3-1090314645
MORA
2004-07-20 13:10
2004.08.15
Структура БД (продолжение)


1-1091508577
FastByte
2004-08-03 08:49
2004.08.15
WideString


1-1091078080
Олег Пономарев
2004-07-29 09:14
2004.08.15
Проблема с копированием в буфер обмена рисунка


3-1090358453
sashok
2004-07-21 01:20
2004.08.15
Interbase