Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.05.21;
Скачать: CL | DM;

Вниз

Отображение большого TStringlist`а в TListBox   Найти похожие ветки 

 
leonidus ©   (2006-05-06 22:04) [0]

Мастера подскажите пожалуйста. Есть Tstringlist в нем содержится порядка 130.000 записей, и есть TListBox, нужно сделать так что бы данные из Tstringlist  отображались в TListBox`е но подгружались в него по мере необходимости (прокрутки) а не все сразу в момент инициализации приложения. Подскажите пожалуйста как это сделать. Только прошу не пинать за то, что такое большое кол-во записей отображается в визуальном компоненте, юзеры этого не испугаются т.к. это приложение - словарь с окном отображающим спосок слов как в Lingvo.


 
Kilkennycat ©   (2006-05-06 22:12) [1]

ну так пишем цикл

for i := start to start + HListBox do listbox1.add(tstringlist1[start+HListbox - i]);
где start - положение "ползунка" в стринглисте, HListBox - сколько будет отображено в листвоксе. Добавить проверку начала и конца, старт-стоп апдейта и все...


 
ЛшдлуттнСфе   (2006-05-06 22:13) [2]

что-то намудрил...
for i := start to start + HListBox do listbox1.add(tstringlist1[i]);


 
begin...end ©   (2006-05-07 08:35) [3]

Я бы использовал виртуальный ListBox. Устанавливаем его свойство Style в lbVirtual, свойство Count -- равному значению количества элементов в списке TStringList, и пишем примерно такой обработчик OnData:

procedure TMyForm.MyListBoxData(Control: TWinControl; Index: Integer; var Data: String);
begin
 Data := List[Index]
end


(здесь List -- это и есть некий "внешний" TStringList).

В результате, когда нужно будет отобразить элемент с индексом Index, автоматически будет вызываться обработчик OnData, т.е. данные в ListBox будут подгружаться по мере необходимости. Что и требовалось.



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

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

Наверх




Память: 0.47 MB
Время: 0.045 c
4-1141048917
Arazel
2006-02-27 17:01
2006.05.21
Запретить регистрвцию процесса в системе


9-1130080449
!Trinix
2005-10-23 19:14
2006.05.21
Чистые коллизии в GLScene


4-1141014465
FunkyByte
2006-02-27 07:27
2006.05.21
Программная коректировка размеров окна при изменении его размеров


2-1146573121
49 Cent
2006-05-02 16:32
2006.05.21
Вопрос по клонированию


6-1129636325
Cosinus
2005-10-18 15:52
2006.05.21
Как отследить активность определенного порта?