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

Вниз

StringGrid   Найти похожие ветки 

 
griban ©   (2004-05-06 15:10) [0]

Da.sortirovka puzirjkovaja,ne poluchaetsja vsju stroku perenesti srazu...Za ComboBox spasibo


 
begin...end ©   (2004-05-06 17:03) [1]


> ne poluchaetsja vsju stroku perenesti srazu


А её и не надо всю, ты же по значениям в какой-то одной колонке сортировать будешь.

procedure TFormName.SortStringGrid(KeyCol: Integer);

 procedure ExchangeRows(Index1, Index2: Integer);
 var
   TempArray: array of String;
   I: Integer;
 begin
   with StringGridName do
   begin
     SetLength(TempArray, ColCount);
     for I := Low(TempArray) to High(TempArray) do
       TempArray[I] := Cells[I, Index1];
     for I := 0 to ColCount - 1 do
       Cells[I, Index1] := Cells[I, Index2];
     for I := 0 to ColCount - 1 do
       Cells[I, Index2] := TempArray[I];
     Finalize(TempArray);
   end;
 end;

var
 I, J: Integer;
   
begin
 with StringGridName do
 begin
   for I := 1 to RowCount - 2 do
     for J := 1 to RowCount - 2 do
     begin
       if StrComp(Cells[KeyCol, J], Cells[KeyCol, J + 1]) > 0 then
         ExchangeRows(J, J + 1);
     end;
 end;
end;


 
Alex Konshin ©   (2004-05-06 19:14) [2]

И сколько же это работать будет... Кошмар. Не, конечно, если там всего пять строк, то, может быть, и приемлемо.


 
begin...end ©   (2004-05-06 20:05) [3]


> [2] Alex Konshin ©   (06.05.04 19:14)


Не спорю, не спорю. Но если автора это не устроит, пусть воспользуется другим алгоритмом сортировки. Думаю, принцип ему понятен.


 
Alex Konshin ©   (2004-05-06 20:15) [4]

Не, неправильно (ну по крайней мере слишком дорого) перемещать данные во время сортировки. Лучше отсортировать массив индексов, а потом уж раставить строки по местам. Хотя я бы вообще не рекомендовал хранить данные в самом гриде - неразумно это.


 
begin...end ©   (2004-05-06 20:31) [5]

"Сам себе ставлю LMD" ( © KilkennyCat )



Страницы: 1 вся ветка

Текущий архив: 2004.05.23;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.036 c
1-1084118331
td
2004-05-09 19:58
2004.05.23
Bookmark in WordDocument


1-1083923137
Erik
2004-05-07 13:45
2004.05.23
Динамическое определение типа?


3-1082983098
ceval
2004-04-26 16:38
2004.05.23
Помогите разобраться -поиск по нескольким полям


14-1083323186
Тимохов
2004-04-30 15:06
2004.05.23
Антиспамовая прога.


1-1084340423
фыва
2004-05-12 09:40
2004.05.23
BringToFront и SendToBack





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