Форум: "Основная";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
ВнизСортировка в 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.036 c