Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2015, 19:33   #1
taxa1
Новичок
Джуниор
 
Регистрация: 20.11.2015
Сообщений: 4
По умолчанию Сортировка

Есть код сортировки. Рабочий. Только не знаю что дописать чтоб он НЕ сортировал последнюю строчку, так как она пустая, и чтоб при первом клике сортировалось от А->Я, а при втором клике от Я->А. И делалось это по нажатию на фиксированный столбец StringGrid.


Код:
procedure TForm1.StringGrid1Click(Sender: TObject);
var
  SlSort, SlRow : TStringList;
  i, j, aCol : Integer;
begin
  aCol := StrinGgrid1.FixedCols;

  SlSort := TStringList.Create;
  for i := StrinGgrid1.FixedRows to StrinGgrid1.RowCount - 1 do begin
    SlRow := TStringList.Create;
    SlRow.Assign(StrinGgrid1.Rows[i]);
    SlSort.AddObject(StrinGgrid1.Cells[aCol, i], SlRow);
  end;
  SlSort.Sort;
  j := 0;
  for i := StrinGgrid1.FixedRows to StrinGgrid1.RowCount - 1 do begin
  SlRow := Pointer(SlSort.Objects[j]);
    StrinGgrid1.Rows[i].Assign(SlRow);
    SlRow.Free;
    Inc(j);
  end;
  SlSort.Free;
end;

Последний раз редактировалось taxa1; 20.11.2015 в 19:53.
taxa1 вне форума Ответить с цитированием
Старый 20.11.2015, 20:18   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
так как она пустая
А ты попробуй проверку поставить?
Код:
if trim(StrinGgrid1.Rows[i].Text)='' then continue;
в начало цикла.
Цитата:
И делалось это по нажатию на фиксированный столбец
Ну тогда твой метод ИМХО совсем не подходит... Хотя вот тут могу ошибаться, потому что такой реализации еще не видел. Но я бы сортировку делал по другому...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.11.2015, 20:31   #3
taxa1
Новичок
Джуниор
 
Регистрация: 20.11.2015
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Но я бы сортировку делал по другому...
А как бы вы делали?
taxa1 вне форума Ответить с цитированием
Старый 20.11.2015, 20:44   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

М.м.м... Как бы это попроще описать... Я бы провел индексацию таблицы. Сделал бы матрицу номеров строк упорядоченных по своему критерию.
Как же это продемонстрировать-то?...
Что такое Индексация таблиц знаешь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.11.2015, 20:48   #5
taxa1
Новичок
Джуниор
 
Регистрация: 20.11.2015
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Что такое Индексация таблиц знаешь?
А по проще вопроса нету? Я программирование учу по ходу выполнения этой курсовой. Вот что в курсовой есть то более-мение знаю)
taxa1 вне форума Ответить с цитированием
Старый 20.11.2015, 21:15   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну короче я бы сделал массив целых чисел, которые по своему построению показывали номера строк грида в отсортированном порядке.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.11.2015, 21:23   #7
taxa1
Новичок
Джуниор
 
Регистрация: 20.11.2015
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ну короче я бы сделал массив целых чисел, которые по своему построению показывали номера строк грида в отсортированном порядке.
А можно код? Я просто не понимаю о чем речь идет, а сдавать уже во вторник.
taxa1 вне форума Ответить с цитированием
Старый 20.11.2015, 22:17   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну сейчас я не особо настроен код писать с нуля...
Если не забуду, завтра пример сделаю.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Быстрая сортировка(сортировка Хоара). Сортировка фрагмента массива [C++] druger Помощь студентам 0 20.04.2012 15:49
Сортировка Шелла и Шейкер-сортировка AleksandrMakarov Паскаль, Turbo Pascal, PascalABC.NET 11 11.03.2012 12:18
Сортировка массива методами предсортировки и слияния, и пирамидальная сортировка. lenny_24 Помощь студентам 2 17.04.2011 18:57
паскаль,одномерный массив,сортировка вставка,сортировка убывания,от максимального до конца немозг Помощь студентам 11 06.02.2010 21:57
Сортировка файлов в Explorer vs сортировка в Delphi mutabor Общие вопросы Delphi 11 04.09.2009 14:32