![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Здравсвуйте. Помогите решить одну проблемку. Может уже кто ниб встречался с такой?
Есть Stringgrid1 в нем 3 столбца, а количество строк изменяется в соответствии с тем какое число выбирается в combobox1. В этих 3ёх столбцах даны какие либо числа... Нужно чтобы выполнилась сортировка по 2ому столбцу, а ячейки в других столбцах изменили свое положение в соответствии с ячейками 2ого столбца. пример: Дано 1 2 6 2 3 9 3 1 2 Сортируем по 2ому столбцу, получаем 3 1 2 1 2 6 2 3 9 Примерная функция сортировки выглядит так: Код:
function mySort(List: TStringList; first, second: Integer): integer; // это функция сортировки
function f(index: integer): integer;
begin result := StrToInt(List.Strings[index]) end;
begin
result :=f(second) - f(first);
end;
begin
ts := TStringList.Create;
try
with StringGrid1 do
ts.
begin
ts.Assign(cols[1]); // Получаем элементы очередной строки
ts.CustomSort(mySort); // сортируем их как числа по убыванию
Cols[1].Assign(ts); // возвращаем назад в Грид
end;
finally
ts.Free;
end; |