Главная страница
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.48 MB
Время: 0.06 c
1-1084353607
andrey__
2004-05-12 13:20
2004.05.23
TServiceApplication - как завершить приложение


7-1082103065
Ruslan
2004-04-16 12:11
2004.05.23
Как отследить изменение в конфигурации компьютера?


1-1084030309
freak
2004-05-08 19:31
2004.05.23
Как на иконке ListView нарисовать что-то


6-1080606162
Керик
2004-03-30 04:22
2004.05.23
Фактическое число байт


7-1079196947
nikitos
2004-03-13 19:55
2004.05.23
Как сделать программу, которая будет закрывать/открывать дисковод