Вниз
Скачать: CL | DM;

Сортировка ListBox (значение Stlye = lbVirtualOwnerDraw)   Найти похожие ветки 

← →
Reals ©   (2003-12-08 04:36) [0]

Здравствуйте, уважаемые!
Помогите пожалуйста отсортировать ListBox со значением Style = lbVirtualOwnerDraw.
Кто знает, что можно сделать.
Данные (100000 записей) загружаються из файла в класс TFileStream. Потом при помощи события ListBox`а OnDrawItem из FileStream записи добавляються в ListBox.
Или может кто подскажете как отсортировать записи в TFileStream?

Заранее премного благодарен.

P.S. Переключить ListBox в Style = lbStandard или еще в какое-то значение отличное от lbVirtual не подходит.


← →
Babay ©   (2003-12-08 05:15) [1]

ИМХО использовать промежуточный StringList. А у него свойство Sorted есть.


← →
Reals ©   (2003-12-08 06:25) [2]

А как это повлияет на скорость выполнения?
Очень сильно или нет?

P.S. У меня очень важна скорость загрузки данных в ListBox.


← →
Babay ©   (2003-12-08 07:50) [3]

Это зависит от того что там у тебя реализуется...
Я ж не знаю чего там может у тебя еще какие объекты к пунктам пристегиваются или еще чего. Так что пробуй тебе все карты в руки.
Или опиши задачу подробнее чего за файл чего за данные как нужно выбирать и т.д. (все что посчитаешь нужным но подробнее) И почему именно lbVirtualOwnerDraw ?
Может и другие решения будут.

ИМХО 100 000 записей в ListBox ??? !!! юзер запарится их смотреть.


← →
Amoeba ©   (2003-12-08 10:53) [4]

Отображение порядка 100000 элементов в LisеBox - это просто нонсенс и форменное издевательство над пользователем. Подумай хорошенько над структурой и дизайном. Определенно что-то в них не так.


← →
Reals ©   (2003-12-08 13:59) [5]

Ok. опишу что к чему.
Я пишу обычный словарь (Румынско-Русский), как Lingvo.
Пользователь вводит слово в Edit, а в ListBox`е оно выделяеться.
Одним вловом, все сделано как в Lingvo.
Почему lbVirtualOwnerDraw? Потому что я записи добавляю через OnDrawItem и мне нужно указать количесво записей ListBox`у свойству Count. А ему можно присваивать только когда Style = какому-то из lbVirtual.
Вот это одна проблема. Если бы мне не нужно было указывать ListBox.Count я бы конечно использовал другой Style.
Я проверил несколько вариантов вставки записей в ListBox, OnDrawItem оказался самым быстрым выводом.
Может имеються другие какие-то советы, с удовольствием выслушаю и прму во внимание.
Структура файла, который находиться в TFileStream имеет 5 полей типа String. В ListBox я вывожу только одно поле.

Вот вроде и все.

Спасибо!


← →
Reals ©   (2003-12-08 14:03) [6]

Подскажите пожалуйста еще, как использовать событие OnDataFind в ListBox?
Я никак не могу понять, как его использоваться. Весь инет облазил ничего не нашел по этому событию.

Спасибо огромное!


← →
Reals ©   (2003-12-08 18:42) [7]

Мастера, подскажите что-нибудь!!

Заранее премного благодарен!



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.012 c
3-61977
Ormada
2003-11-15 20:32
2003.12.19
Тригеры


1-62124
lightix
2003-12-08 10:19
2003.12.19
QReport+QRichText - как разорвать страницу в нужном месте


14-62272
наблюдатель
2003-11-24 19:15
2003.12.19
TimeStoper


3-61953
Noir
2003-11-25 18:34
2003.12.19
Проблеммы с запросом ADOQuery с параметрами


3-61970
Hooch
2003-11-26 11:55
2003.12.19
Добавить поле в adoDataSet




   Наверх