IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

 
 Ответить  Открыть новую тему 
> Сортировка двух (!) Listbox-ов
сообщение
Сообщение #1


Гость






Привет всем... smile.gif

Что-то глючит меня в последнее время...
Есть такой вопрос: на форме лежат 2 ListBox-а (ну, на самом деле это TTntCheckListBox, но это не имеет никакого значения, ибо Items и у тех и у других - потомок TStrings)... Так вот... В эти 2 компонента одновременно записывается информация. В первый, скажем, имя какого-то класса, во второй - его же ID, то есть, в конце концов получаем 2 заполненных ListBox-а, каждый N-ый элемент которых соответствует друг другу... Теперь сам вопрос: возникла необходимость отсортировать первый ListBox по алфавиту, но нужно пересортировать и второй, так, чтобы опять же элементы с одинаковыми индексами друг другу соответствовали (оба листбокса будут прокручиваться синхронно, и нужно, чтобы ID класса соответствовал расположенному напротов него имени класса)...

Количество элементов в ListBox-ах - порядка сотен, возможно - до нескольких тысяч, так что если просто написать процедуры сортировки по индексам, это будет довольно длительный процесс (по сравнению со встроенными сортировками, в частности)... Может есть какая-то другая возможность?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Привет!
Попробуй TValueListEditor. (Delphi7)
Там TStrings такого формата: key=value
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Цитата
Попробуй TValueListEditor
Ну, и что мне это даст? Он с каких-то пор умеет работать с Unicode? Нет, а TTntCheckListBox - умеет, и это - обязательное условие для проекта... Так что использование НЕюникодных компонентов отпадает...

Да и встроенных методов сортировки у TValueListEditor нет, нужно делать самому, а написать я и для тех компонентов могу. Вопрос был в основном в скорости обработки...

P.S. Кстати, у меня не D7, а D6...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Цитата(volvo @ 20.09.2006 13:31) *

по сравнению со встроенными сортировками, в частности

Какими например ?
У меня, кстати, TTntCheckListBox вообще нет sad.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Четыре квадратика
****

Группа: Пользователи
Сообщений: 579
Пол: Мужской

Репутация: -  4  +


Может быть, элементы второго списка выдернуть временно в TStringList, а у него есть симпатичный метод CustomSort? CustomSort для работы просит пользовательскую функцию сравнения двух элементов. Тогда получится отсортировать его по ключам из первого списка. А второй обычным Sort.


Или наследника этого TTnt... родить специально для второго списка -- всё как у папы кроме одного свойства -- "первый" список, и измененный метод сортировки. Но это ежели исходники есть (а вряд ли... эта TNT поди вся закрытая-платная?)


--------------------
Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






trminator, ты о чем это?
Цитата
эта TNT поди вся закрытая-платная?


no1.gif

TntWare Delphi Unicode Controls
Все бесплатно и открыто... С CustomSort попробую...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Пионер
**

Группа: Пользователи
Сообщений: 61
Пол: Мужской

Репутация: -  0  +


не легче ль держать массивы, сортировать их и затем пихать в эти листы.
(может я не понял... но вообще это вроде как самый первый вариант и легкий)


--------------------
...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Цитата
Количество элементов в ListBox-ах - порядка сотен, возможно - до нескольких тысяч, так что если просто написать процедуры сортировки по индексам, это будет довольно длительный процесс
+ сюда же еще ты предлагаешь добавить временнЫе расходы на добавление элементов в ListBox?

В принципе, вопрос решен... Клиента устраивает такое быстродействие, проект сдан...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Пионер
**

Группа: Пользователи
Сообщений: 61
Пол: Мужской

Репутация: -  0  +


если было много операций над итемами плюс их колво было б не маленьким - то наверно да.


--------------------
...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 




- Текстовая версия 26.09.2017 8:49
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"