Вниз
Скачать: 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
1-62055
killer
2003-12-05 18:58
2003.12.19
Регистрация файла


3-61910
alex-ran
2003-11-20 16:42
2003.12.19
Как узнать список драйверов ODBC с помощью SQLDrivers


4-62322
alexis
2003-10-26 12:05
2003.12.19
Помогите разобраться с функцией !


1-62006
Wilsh
2003-12-06 17:02
2003.12.19
TMemo или TRichEdit


3-61932
vlgrig1961
2003-11-26 08:28
2003.12.19
Помогите с UPPER в Oracle




   Наверх