Привет всем...
Что-то глючит меня в последнее время...
Есть такой вопрос: на форме лежат 2 ListBox-а (ну, на самом деле это TTntCheckListBox, но это не имеет никакого значения, ибо Items и у тех и у других - потомок TStrings)... Так вот... В эти 2 компонента одновременно записывается информация. В первый, скажем, имя какого-то класса, во второй - его же ID, то есть, в конце концов получаем 2 заполненных ListBox-а, каждый N-ый элемент которых соответствует друг другу... Теперь сам вопрос: возникла необходимость отсортировать первый ListBox по алфавиту, но нужно пересортировать и второй, так, чтобы опять же элементы с одинаковыми индексами друг другу соответствовали (оба листбокса будут прокручиваться синхронно, и нужно, чтобы ID класса соответствовал расположенному напротов него имени класса)...
Количество элементов в ListBox-ах - порядка сотен, возможно - до нескольких тысяч, так что если просто написать процедуры сортировки по индексам, это будет довольно длительный процесс (по сравнению со встроенными сортировками, в частности)... Может есть какая-то другая возможность?
Привет!
Попробуй TValueListEditor. (Delphi7)
Там TStrings такого формата: key=value
Может быть, элементы второго списка выдернуть временно в TStringList, а у него есть симпатичный метод CustomSort? CustomSort для работы просит пользовательскую функцию сравнения двух элементов. Тогда получится отсортировать его по ключам из первого списка. А второй обычным Sort.
Или наследника этого TTnt... родить специально для второго списка -- всё как у папы кроме одного свойства -- "первый" список, и измененный метод сортировки. Но это ежели исходники есть (а вряд ли... эта TNT поди вся закрытая-платная?)
trminator, ты о чем это?
не легче ль держать массивы, сортировать их и затем пихать в эти листы.
(может я не понял... но вообще это вроде как самый первый вариант и легкий)
если было много операций над итемами плюс их колво было б не маленьким - то наверно да.