Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.12.19;
Скачать: 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 вся ветка

Текущий архив: 2003.12.19;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
3-61908
Michail Dalakov
2003-11-24 12:01
2003.12.19
TMemoField в TClientDataSet


1-62067
Rradion
2003-12-05 16:28
2003.12.19
Как из Списка положить в ЛистБох?


1-62020
1
2003-12-09 13:05
2003.12.19
Показ Popup в OnDrawMenuItem


14-62201
den_c
2003-11-26 23:06
2003.12.19
Инсталяция плагина через Internet Explorer


1-62112
Psi-factor
2003-12-08 10:22
2003.12.19
Webbrowser открыть страницу во фрейме