Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Сортировка в StringGrid


Автор: Mikazme 26.12.2010, 15:45
Есть у меня например StringGrid у нее 7 столбцов(Номер, количество мест, поверх, корпус и т.д.) Мне надо чтоб при нажатии кнопки все сортировалось, например за номером. Как ето сделать я ума не приложу, все мои попытки закончились вылетанием ошибок в делфи... Перепробовал разные методы сортирования которые впринципе придуманы для масивов, старался чтото поменять но не получалось... 

Помогите пожалуйста, хоть какой нибудь пример наведите, я постараюсь розобраться  smile 

Наперед спасибо=)

Автор: Molodec 27.12.2010, 13:30
Здравствуйте Mikazme! 
Могу предложить Вам разве что нетривиальное решение:
  • Создать структуру с полями "номер, количество мест, поверх, корпус и т.д.";
  • Создать массив данной структуры;
  • Записать все элементы в массив структур, то есть по всем полям;
  • Далее сортируй массив структур любым методом сортировки, например, метод вставки, прямого упорядочения, пузырька и т.д. При этом элементы меняй с помощью дополнительной структуры - для временного хранения значений всех полей;
  • По порядку запиши все элементы в StringGrid.
Успехов!

Автор: БелАмор 27.12.2010, 14:18
Цитата(Mikazme @  26.12.2010,  15:45 Найти цитируемый пост)
Перепробовал разные методы сортирования которые впринципе придуманы для масивов

В данном случае развлекаться с различными методами сортировки имеет смысл только в учебных целях или ради собственного удовольствия. Во всех остальных стучаях имеет смысл использовать встроенные средства.

Полностью рабочий пример:
http://www.delphikingdom.com/asp/answer.asp?IDAnswer=76958

Автор: Mikazme 27.12.2010, 19:34
Спасибо большое за оба совета, поекспериментирую и напишу)

Цитата

В данном случае развлекаться с различными методами сортировки имеет смысл только в учебных целях или ради собственного удовольствия. Во всех остальных стучаях имеет смысл использовать встроенные средства.


Можно сказать я совместил полезное с приятным) делал курсовую, вот и решил побаловаться с сортированием, я пока только начинающий, но мне интересно писать что-то свое, пусть даже не такое красивое и быстродействующее как уже готовые примеры) 

Автор: Molodec 28.12.2010, 13:33
Рад был Вам помочь. 
Какой бы Вы способ не выбрали - все будут полезны. Мой - тем, что Вы получите практический навык, от того, что реализуете алгоритм. Способ, который подсказал БелАмор поможет Вам узнать как подходят к данной проблеме более опытные люди. В любом случае успехов! smile

Автор: Poseidon 28.12.2010, 14:38
А StringGrid использовать обязательно? Если хороший компонент TVirtualStringTree, который не только отсортирует, но и стрелочку на заголовке нарисует и тому подобные прелести.

Автор: Mikazme 30.12.2010, 13:35
Цитата

А StringGrid использовать обязательно? Если хороший компонент TVirtualStringTree, который не только отсортирует, но и стрелочку на заголовке нарисует и тому подобные прелести. 


Хм.. вобщето не обязательно, я выбрал его только потому что более-менее нормально его знаю) а таким компонентом вообще не пользовался, спасибо, посмотрю.

Автор: Poseidon 31.12.2010, 09:21
http://forum.vingrad.ru/forum/topic-97620/hl/tvirtualstringtree/index.html

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)