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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2007, 14:18   #1
Римма
Пользователь
 
Регистрация: 06.12.2006
Сообщений: 31
Вопрос StringGrid сделать сортировку по алфавиту

Привет всем. Кто может подсказать мне как в StringGrid сделать сортировку по алфавиту. Такое можно сделать? С нетерпением жду ваших подсказок.
Римма вне форума Ответить с цитированием
Старый 12.10.2007, 14:22   #2
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Цитата:
Сообщение от Римма Посмотреть сообщение
Привет всем. Кто может подсказать мне как в StringGrid сделать сортировку по алфавиту. Такое можно сделать? С нетерпением жду ваших подсказок.
Проще всего, пожалуй, будет так:
сначала скопировать StringGrid в TStringList, уже его отсортировать и затем скопировать обратно.
alexBlack вне форума Ответить с цитированием
Старый 12.10.2007, 15:17   #3
AlDelta
Реанимируюсь...
Участник клуба
 
Аватар для AlDelta
 
Регистрация: 19.07.2007
Сообщений: 1,445
Сообщение Сортировка StringGrid'a, алгоритм.

Пузырьковая сортировка, алгоритм:

1. Сравниваем первую букву i-ой строки с первой буквой строки i+1 если они совпадают берем следующие буквы.
2. Если i+1-е больше i-го (в случае сортировки по убыванию) - меняем местами эти строки местами, переменной логического типа присваиваем значение, например "истина" - это будет означать, что перестановка была выполнена.
3. Возвращаемся к пункту 1. со следующим значение i.
4. если в процессе просмотра всего списка была выполнена хотя бы одна перестановка (это покажет наша дополнительная логическая переменная) надо выполнить просмотр еще раз, если перестановок не было - сортировка выполнена.

Посмотри этот алгоритм, если возникнут вопросы - задавай.
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте.
Правила форума => Правила раздела => Для общего развития => Помощь студентам => Перед тем, как создавать тему, скачайте себе...
P.S.: форум не песочница (с)
название статьи на сайте MS: "Отмена принудительного отключения автоматического запуска в реестре Windows"

Последний раз редактировалось AlDelta; 12.10.2007 в 15:37.
AlDelta вне форума Ответить с цитированием
Старый 12.10.2007, 15:18   #4
Римма
Пользователь
 
Регистрация: 06.12.2006
Сообщений: 31
Вопрос

А так можно зделать что ли?Примерно он как будет сортировать то?Я че то не очень понила суть?Не можешь мне по подробние обьяснить?
Римма вне форума Ответить с цитированием
Старый 12.10.2007, 15:20   #5
Римма
Пользователь
 
Регистрация: 06.12.2006
Сообщений: 31
Вопрос

Я имела в виду по поводу TStringList
Римма вне форума Ответить с цитированием
Старый 12.10.2007, 16:01   #6
AlDelta
Реанимируюсь...
Участник клуба
 
Аватар для AlDelta
 
Регистрация: 19.07.2007
Сообщений: 1,445
Стрелка TStringList подробней

Цитата:
А так можно зделать что ли?Примерно он как будет сортировать то?Я че то не очень понила суть?Не можешь мне по подробние обьяснить?
Единственный способ определить границы возможного - выйти за эти границы, в невозможное. (Артур Кларк)


Для того чтобы можно было работать с этим классом, надо создать экземпляр этого
класса - объект. Создание объекта TStringList:
Код:
Var 
 STR: TStringList;
Begin
 STR:= TStringList.Create;
Итак, объект создан. Для добавления строки используется метод Add единственным параметром, которого является добавляемая строка. Строка будет добавлена после самой последней строки. Тоже самое делает метод Append. Для того чтобы вставить строку в определённую позицию надо использовать функцию Insert.
Код:
procedure Insert(Index: Integer; const S: string); override;
параметр Index задаёт позицию добавляемой строки, если указать 0, то строка будет самой первой, если 1, то строка будет второй. Разумеется нумерация с нуля. Строка, которая стоит на этой позиции будет сдвинута вперёд. Нельзя указывать индекс строки больше чем строк в списке, произойдёт исключение. Ну и для удаления строки используется функция Delete, в качестве единственного параметра которой надо указывать индекс строки для удаления. Весь список строк предоставляется свойством-массивом Strings. Оно доступно как для чтения так и для изменения. Используется это свойство так:
Код:
ShowMessage(STR.Strings[1]);
Для получения количества элементов используется функция Count, которая возвращает количество элементов в списке. Весь список очищается с помощью метода Clear.
TStringList позволяет сортировать список в алфавитном порядке. Для сортирования всего списка в алфавитном порядке надо вызвать метод Sort или присвоить свойству Sorted значение True. После сортировки обратно вернуть строки на свои места невозможно. Различие между этими методами сортировки в том, что метод Sort просто сортирует список, а при присваивании свойству значения True, каждое добавляемое значение будет сортироваться, и воспользоваться методом Insert будет невозможно
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте.
Правила форума => Правила раздела => Для общего развития => Помощь студентам => Перед тем, как создавать тему, скачайте себе...
P.S.: форум не песочница (с)
название статьи на сайте MS: "Отмена принудительного отключения автоматического запуска в реестре Windows"
AlDelta вне форума Ответить с цитированием
Старый 12.10.2007, 16:15   #7
Римма
Пользователь
 
Регистрация: 06.12.2006
Сообщений: 31
Подмигивание

Большое вам всем спасибо кто откликнулся на мой запрос.Вы мне хорошую идею подкинули.Можно тему считать закрытым.
Римма вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать сортировку (поиск) Delphi+Access Toska БД в Delphi 6 28.08.2008 22:32
Помогите переделать файловую сортировку на сортировку динамич. списков Taisja Помощь студентам 2 15.06.2008 16:10