Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
14-71845
DiamondShark
2003-09-01 14:35
2003.09.22
Поздравляю всех.


8-71770
WInAPi Lamer
2003-05-19 13:40
2003.09.22
DelpiX problemmmmm in fullscreen


1-71688
oomneeq
2003-09-10 16:27
2003.09.22
VarArrayCreate - массив массивов?


7-71962
evg12
2003-06-28 05:15
2003.09.22
Серийный номер HDD


3-71546
Hooch
2003-08-29 13:59
2003.09.22
TAdoDataSet





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский