![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
VanClivern |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 18.5.2005 Репутация: нет Всего: нет |
День добрый, господа.
Вновь обращаюсь к Вам за советом. Значится так: Имеется TStrinGgrid (6x5). Забиваю туда данные. Нажимаю на кнопочку и, по идее, должна открыться форма с этой же таблицей, но уже отсортированной по некоторому полю. Если же поля одинаковы, то сортировка идет по соседнему. Поля пости все числовые, за исключением 1-го - текст.
и т.д. Знаю, что заполнять таблицу было бы проще циклом, но это уже другой вопрос. Так вот. Не могли бы Вы подсказать корректный способ сортировки, чтобы сортировались записи Заранее благодарю. |
|||
|
||||
pavelv |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 5.2.2006 Репутация: нет Всего: нет |
Просто методы чтоли? Ну можно пузырьком, квиксорт, пирамидальная. Если по времени проблем нет бери первый вариант и не грей мозг. Заносишь все твои значения в массив, сортируешь, затем отчищаешь StringGrid и заново данные заносишь. Кстати думаю давно есть компонеты, чтобы после нажатия на колонку сортировка автоматически проводилась
|
|||
|
||||
VanClivern |
|
||||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 18.5.2005 Репутация: нет Всего: нет |
А можно код? Пожалуйста. ![]()
Интересно было бы с ними ознакомиться. Это сообщение отредактировал(а) VanClivern - 5.12.2007, 06:47 |
||||
|
|||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
Lexicss |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 197 Регистрация: 16.8.2006 Где: Беларусь, Минск Репутация: нет Всего: 1 |
--------------------
Бери от жизни всё. |
|||
|
||||
VanClivern |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 18.5.2005 Репутация: нет Всего: нет |
Спасибо за помощь. Вот поглядите. Код отрыл:
Procedure GridSort(StrGrid: TStringGrid; NoColumn: Integer); Var Line, PosActual: Integer; Row,Renglon: TStrings; begin Renglon := TStringList.Create; For Line := 1 to StrGrid.RowCount-1 do Begin PosActual := Line; Row.Assign(TStringlist(StrGrid.Rows[PosActual])); While True do Begin If (PosActual = 0) Or (StrToInt(Row.Strings[NoColumn-1]) >= StrToInt(StrGrid.Cells[NoColumn-1,PosActual-1])) then Break; StrGrid.Rows[PosActual] := StrGrid.Rows[PosActual-1]; Dec(PosActual); end; If StrToInt(Row.Strings[NoColumn-1]) < StrToInt(StrGrid.Cells[NoColumn-1,PosActual]) then StrGrid.Rows[PosActual] := Row; Renglon.free; end; end; Вставляю процедуру в код. Вызываю ее: procedure TForm1.Button5Click(Sender: TObject); begin gridsort(form3.Ta,3); end; и Вылезает ошибка такого содержания: Accses violation at adress и т.д. Чего делать ума не приложу. Пожалуйста присоветуйте чего. Мне сдаваться завтра. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |