Форум: "Основная";
Текущий архив: 2003.09.22;
Скачать: [xml.tar.bz2];
Внизкак отсортировать StringGrid по любой колонке?? Найти похожие ветки
← →
HeZgox (2003-09-08 23:59) [0]как отсортировать StringGrid по любой колонке??
← →
malkolinge (2003-09-09 00:35) [1]Там rows $ cols
вроде Tstrings, наверное от этого и крутиться
← →
HeZgox (2003-09-09 01:33) [2]в смысле Sort?? ... тама такого нету вроде, что странно :\
← →
Alex Konshin (2003-09-09 07:46) [3]А не StringGrid не подойдет?
← →
dima_shapkin (2003-09-09 10:29) [4]var
S : TStringList;
i : LongInt;
begin
S := TStringList.Create(nil);
for i := Grid.FixedRows to RowCount - 1 do
S.AddObject(Grid.Cells[ACol, i], TObject(i));
S.Sort; // Быстрая сортировка, действительно быстрая :)
// Потом в соответсвии с позицией строки TObject(i) меняешь все позии в Cells. Типа мысль понятна, все остальное писать нет смысла.
S.Free;
end;
← →
McSimm2 (2003-09-09 10:48) [5]
procedure TFrm_main.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;
← →
HeZgox (2003-09-09 12:10) [6]>Alex Konshin
>А не StringGrid не подойдет?
к сожалению нет, придёться многа кода переделывать
>McSimm2
спасибо всё отлично работает!
ВСЕММ СПАСИБ! :)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.09.22;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c