Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.22;
Скачать: CL | DM;

Вниз

как отсортировать 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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.027 c
8-71766
e}{e
2003-05-19 00:29
2003.09.22
Как запретить компоненту двигаться по диагонали?


1-71652
Lena19
2003-09-01 23:03
2003.09.22
иконка из EXE файла без API


3-71469
Serg2000
2003-09-02 11:51
2003.09.22
Украинские буквы в PReport v.1.81!!!!


1-71620
ray_w
2003-09-09 12:53
2003.09.22
Кавычки???


1-71681
acsoft
2003-09-11 12:07
2003.09.22
У кого-нибудь есть готовый алгоритм поиска файлов в Windows по им