Форум по программированию Delphi Sources

 



Вернуться   Форум по программированию Delphi Sources > Все о Delphi > Delphi .NET
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.05.2013, 00:16
Pilyla Pilyla вне форума
Прохожий
 
Регистрация: 09.04.2013
Сообщения: 23
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Сортировка по убыванию StringGrid

Здравствуйте . есть код сортировки по возрастанию. что нужно изменить,чтобы была сортировка по убыванию . подскажите,пожалуйста

Код:
procedure TForm9.SgSort(aSg : TStringGrid; const aCol : Integer);
var
  SlSort, SlRow : TStringList;
  i, j : Integer;
begin
  SlSort := TStringList.Create;
  for i := aSg.FixedRows to aSg.RowCount - 1 do begin
       SlRow := TStringList.Create;
    SlRow.Assign(aSg.Rows[i]);
    SlSort.AddObject(aSg.Cells[aCol, i], SlRow);
  end;
  SlSort.Sort;
  j := 0;
  for i := aSg.FixedRows to aSg.RowCount - 1 do begin
        SlRow := Pointer(SlSort.Objects[j]);
      aSg.Rows[i].Assign(SlRow);
       SlRow.Free;
       Inc(j);
  end;
  SlSort.Free;
end;
Ответить с цитированием
  #2  
Старый 24.05.2013, 06:40
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,026
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Вот ещё вариант
Код:
procedure SortToTableDesc(StrGrid: TStringGrid; SortColumn: integer);
  function Uslovie(s2, s1: string): boolean;
  var vl1, vl2:Extended;
  begin
    if tryStrtoFloat(s1,vl1) and tryStrtoFloat(s2,vl2) then
       Result:= vl1 > vl2 else Result:= s1 > s2;
  end;
var i, j, k: integer;
  sTemp: string;
begin
 with StrGrid do
  for i := FixedRows to RowCount-2 do
   for j := i + 1 to RowCount-1 do
    if Uslovie(Cells[SortColumn, i], Cells[SortColumn, j]) then
     for k := FixedCols to ColCount-1 do
      begin
       sTemp:= Cells[k, i];
       Cells[k, i]:= Cells[k, j];
       Cells[k, j]:= sTemp;
      end;
end;
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
Pilyla (26.05.2013)
Ответ



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 11:00.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources", 2004-2019

ВКонтакте   Facebook   Twitter