Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.033 c
4-1081427159
igornov
2004-04-08 16:25
2004.05.23
Как на чужой форме запретить нажатие кнопок?


14-1083236023
infom
2004-04-29 14:53
2004.05.23
Как вам вчерашнии игры


14-1083253487
афвуд
2004-04-29 19:44
2004.05.23
Не подскажет кто исходники(C, Pasca) какой-нибудь скриптогонялки.


1-1083833388
NAlexey
2004-05-06 12:49
2004.05.23
Как преобразовать число с плавающей точкой в ненаучный формат


3-1082722616
}|{yk
2004-04-23 16:16
2004.05.23
Триггер. Не записівается в блоб-поле





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