![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
MerCus |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 24.3.2008 Репутация: нет Всего: нет |
есть таблица со значениями StringGrid, нужно отсортировать эти значения по столбцу (пусть будет столбец А), то есть один столбец(А) сортируем по возрастанию, а значения остальных столбцов сортируются соответственно значениям столбца А.
в Ecxel'e есть такая сортировка, думаю многие с ней знакомы. надо тоже самое организовать в StringGrid'е. может вопрос ламерский, но разобраться не могу, помогите пожалуйста! заранее спасибо! |
|||
|
||||
MerCus |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 24.3.2008 Репутация: нет Всего: нет |
вот код который пишу я:
надо было пояснение написать.. так вот arg - это массив столбца в котором производим сортировку по возрастанию, а- это двумерный массив всех значений СтрингГрида. Это сообщение отредактировал(а) MerCus - 3.10.2008, 02:37 |
|||
|
||||
Staruha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1292 Регистрация: 1.2.2004 Где: Казань Репутация: 1 Всего: 27 |
В StringGride есть свойство Index наверно это то что тебе надо
-------------------- Возмездие настигнет |
|||
|
||||
MerCus |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 24.3.2008 Репутация: нет Всего: нет |
не знаю, что вы имели ввиду, но свойства Индекс у СтрингГрида нет, если вы хотели мне сказать, что менять значения надо по соответствующим индексам, то я догодался и сам об этом, только у меня не выходит грамотно это прописать, поэтому я и обратился за помощью
![]() |
|||
|
||||
Staruha |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1292 Регистрация: 1.2.2004 Где: Казань Репутация: 1 Всего: 27 |
![]() Я по твоему образу написала код но он ругается на StringGrid1Sells[i-1,0]; наверно потому что String не заполнен.
-------------------- Возмездие настигнет |
||||
|
|||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
нет. Потому что нужна точка и не правильно написано.
StringGrid1.Сells[i-1,0]; Это сообщение отредактировал(а) Poseidon - 2.10.2008, 14:12 -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
uranpro |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 571 Регистрация: 7.5.2008 Где: Moscow city Репутация: нет Всего: 1 |
Staruha,
![]() ![]() "ол рихтс!"- сказал студент-самоучка, изучающий английский язык, положив на стол газету "невс тимес" Это сообщение отредактировал(а) uranpro - 2.10.2008, 16:25 -------------------- I want a perfect soul |
|||
|
||||
MerCus |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 24.3.2008 Репутация: нет Всего: нет |
по существу ответа так и не было, больше ни у кого никаких мыслей нет?
|
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Можно либо делать сортировку в ручную, запихивая всю таблицу в многомерный массив, либо использовать другой компонент. К примеру, VirtualStringTree.
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
Staruha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1292 Регистрация: 1.2.2004 Где: Казань Репутация: 1 Всего: 27 |
MerCus нам немножко осталось до правильного решения.Я в коде все исправила больше не ругается только опять не могу тестировать.Вопрос Что в String данные тоже программно вводить?Чейто я не найду там ReadOnly
-------------------- Возмездие настигнет |
|||
|
||||
Staruha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1292 Регистрация: 1.2.2004 Где: Казань Репутация: 1 Всего: 27 |
OPtions.goEditing люди добрые подсказали.
Сейчас че-нить накопаю -------------------- Возмездие настигнет |
|||
|
||||
Staruha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1292 Регистрация: 1.2.2004 Где: Казань Репутация: 1 Всего: 27 |
Работает
![]()
-------------------- Возмездие настигнет |
|||
|
||||
THandle |
|
||||
![]() Хранитель Клуба ![]() Награды: 1 Профиль Группа: Админ Сообщений: 3639 Регистрация: 31.7.2007 Где: Moscow, Dubai Репутация: 65 Всего: 372 |
Что то подобное:
Заполним StringGrid:
Сортируем:
Сортирует СТРОКИ, а не числа, которые взяты просто для примера ![]() |
||||
|
|||||
MerCus |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 24.3.2008 Репутация: нет Всего: нет |
Staruha вы сортируете один столбец! это проще простого, а мне надо один столбец сортировать по возрастанию, а все остальные по этому столбцу.
THandle спасибо, но тоже не совсем то. короче обьясняю как делаю я, и это скорее всего правильно, только наверное не совсем))) делаем через массив, потом этот массив выводим в стринггрид. сортируем один столбец (который выбирает пользователь), запоминаем индекс числа в массиве которое меняем, и меняем числа в других столбцах с таким же индексом. собственно всё это отражает мой код во втором сообщении, а вы ребята, то ли меня не поняли, то ли от темы ушли. вы все к СтрингГриду прицепились, сортировать надо через массив, а потом его просто вывести. |
|||
|
||||
Staruha |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1292 Регистрация: 1.2.2004 Где: Казань Репутация: 1 Всего: 27 |
THandle
Я сама поражаюсь как это происходит ,но Строка в мною приведенном коде сортируется Супер ,а именно по первой букве ,по второй,третьей и т.д. MerCus
спасибо тебе MerCus ![]() так что получается,если Stroka:=StringGrid1.Cells[1,k]+StringGrid1.Cells[2,k]+.....; тоже должна сортироваться по тому же принципу. А массив или String(ты сам просил,хотя во всех примерах сортируются массивы) это просто контейнер. -------------------- Возмездие настигнет |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |