Форум: "Основная";
Текущий архив: 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.032 c