Главная страница
    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-71954
Pindos
2003-09-02 13:36
2003.09.22
Подсчет времени и провдённого в Интернете


14-71851
DeMoN-777
2003-09-01 13:41
2003.09.22
re: По поводу структуры БД


3-71549
Alik$
2003-07-30 21:33
2003.09.22
Ошибка при активизации


14-71827
Сергей Суровцев
2003-09-01 02:22
2003.09.22
Корейский Боинг


1-71711
drakulita
2003-09-10 16:49
2003.09.22
TXT файлы





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