Показать сообщение отдельно
  #1  
Старый 31.05.2012, 12:03
gamezeldol gamezeldol вне форума
Прохожий
 
Регистрация: 21.02.2012
Сообщения: 16
Репутация: 10
По умолчанию Сортировка в stringgrid

Здравсвуйте. Помогите решить одну проблемку. Может уже кто ниб встречался с такой?
Есть 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;
СПАСИБО за внимание.
Ответить с цитированием