Главная страница
    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.45 MB
Время: 0.012 c
14-71877
Nik8.
2003-09-04 12:37
2003.09.22
Веб аддрес Журнала


1-71667
Man
2003-09-10 16:34
2003.09.22
как програмно определить к какому винчестеру относится диск


3-71553
nikkkk
2003-08-28 17:22
2003.09.22
Как работать с составными(expression) индексами ???


3-71502
LexaVV
2003-09-01 13:19
2003.09.22
DLL и MS SQL 2000


1-71576
DVE
2003-09-10 09:55
2003.09.22
Каков механизм сохранения объекта в файл





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский