Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2012, 07:18   #1
Suny-o
Пользователь
 
Аватар для Suny-o
 
Регистрация: 03.03.2012
Сообщений: 33
По умолчанию Есть ли компонент - аналог listbox позволяющий листать, отображать, работать с 150 тыс. строк?

Лепить к listbox дополнительную полосу прокрутки и обходить ограничение в 50 тыс. строк очень не удобно.

странно
Код:
procedure TForm1.Button1Click(Sender: TObject);
var n:integer;
begin
for n:=1 to 150000 do
 begin
 ListBox1.Items.Add(inttostr(n));
 end;
end;
создал listbox со 150 тыс. строк и он их корректно отображет и листает без проблем.

P.S.
Точно помню у меня с этим были проблемы.
QuickSortStr04.rar работа с динамическими 1D,2Dмассивами строк
* быстрая сортировка по любому алфавиту, добавление, удаление элементов.
* чтение, запись(файл<-->дин. массив)

Последний раз редактировалось Suny-o; 11.12.2012 в 07:53.
Suny-o вне форума Ответить с цитированием
Старый 11.12.2012, 07:46   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Вариант слепить все это один раз в отдельный компонент, а потом его и юзать, не рассматривали?
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 11.12.2012, 08:34   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Интересно, а пользователю с ListBox в 50000 строк удобно работать? Представляю, как он кроет разработчика программы в такой ситуации
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 11.12.2012, 08:50   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

Цитата:
Есть ли компонент - аналог listbox позволяющий листать, отображать, работать с 150 тыс. строк?
имхо, маразм так делать. Подгружайте и отображайте по мере надобности данные.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 11.12.2012, 10:50   #5
superedward
Форумчанин
 
Аватар для superedward
 
Регистрация: 27.11.2012
Сообщений: 190
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Интересно, а пользователю с ListBox в 50000 строк удобно работать? Представляю, как он кроет разработчика программы в такой ситуации
Есть несколько экземпляров ПО, навязанных государством, где есть листбоксы и комбобоксы с многими тысячами строк без возможности поиска... Это такая ж....
Умоляю автора темы не повторять подобного.
superedward вне форума Ответить с цитированием
Старый 11.12.2012, 10:59   #6
Suny-o
Пользователь
 
Аватар для Suny-o
 
Регистрация: 03.03.2012
Сообщений: 33
По умолчанию

Цитата:
Сообщение от superedward Посмотреть сообщение
Есть несколько экземпляров ПО, навязанных государством, где есть листбоксы и комбобоксы с многими тысячами строк без возможности поиска... Это такая ж....
Умоляю автора темы не повторять подобного.
Мне все это надо для бесплатной программы словаря.
Так что, listbox в 150 тыс. строк для нее нормальное дело.
И поиск там естественно есть.
QuickSortStr04.rar работа с динамическими 1D,2Dмассивами строк
* быстрая сортировка по любому алфавиту, добавление, удаление элементов.
* чтение, запись(файл<-->дин. массив)
Suny-o вне форума Ответить с цитированием
Старый 11.12.2012, 12:56   #7
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,453
Лампочка TLMDExtListBox

можно и с этим компонентом TLMDExtListBox, lmd.de

Последний раз редактировалось beegl; 11.12.2012 в 14:50. Причина: убрал архив с компонентом
beegl вне форума Ответить с цитированием
Старый 11.12.2012, 14:19   #8
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

Включаем Style = lbVirtual
Назначаем обработчик OnData = ListBoxData
Используем любое хранилище Ваших данных, например TStringList.
Скорость работы будет зависить от времени заполнения хранилища.
ReportCube вне форума Ответить с цитированием
Старый 11.12.2012, 16:10   #9
superedward
Форумчанин
 
Аватар для superedward
 
Регистрация: 27.11.2012
Сообщений: 190
По умолчанию

Цитата:
Сообщение от Suny-o Посмотреть сообщение
Мне все это надо для бесплатной программы словаря.
Так что, listbox в 150 тыс. строк для нее нормальное дело.
Простите за холивар, но listbox в 150 тыс. строк - сам по себе ненормальное дело. Изучайте юзабилити.
Строка поиска и результаты поиска - вот, что нужно.
superedward вне форума Ответить с цитированием
Старый 11.12.2012, 16:29   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
для бесплатной программы словаря.
Для программы словаря нужно внешнее хранилище - база данных. Тоже согласен с мнением аномальности втискивания такого кол-ва информации в компонент. Пусть даже и с поисками.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать класс, позволяющий работать с односвязным списком Алёсенька Помощь студентам 1 22.09.2012 14:33
Компонент-аналог TWebBrowser kettanaito Компоненты Delphi 9 09.11.2011 23:44
Есть окно, в котором есть аналог Memo. Как из него вытащить текст? TwiX Общие вопросы Delphi 6 16.06.2011 13:58
Как сделать формулу для 40 тыс. строк Alien453 Microsoft Office Excel 21 11.04.2011 21:54
Разработать программу для заполнения типизированного файла целыми числами в интервале [-150; 150]. Поменя Pan_rust Паскаль, Turbo Pascal, PascalABC.NET 0 24.05.2010 23:03