Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Максимальное кол-во элементов в ListBox


Автор: Black_Joker 27.1.2005, 11:44
Какое максимальное количество элементов может быть в ListBox и ComboBox?

Автор: Akella 27.1.2005, 11:53
попробуй поэксперементировать со свойством Capacity того и другого.

Автор: Rennigth 27.1.2005, 11:55
нарерно столькоже сколько и у TList.Items -> Integer;

Автор: Snowy 27.1.2005, 12:27
Item'ы ListBox и ComboBox это TStrings.
Tstrings - наследник от Tlist.
Максимальный размер Tlist указан в Classes и равен:
Код

{ Maximum TList size }
 MaxListSize = Maxint div 16;


Добавлено @ 12:29
Если интересно, сколько это в нормальных циферках: 134217727

Автор: <Spawn> 27.1.2005, 13:43
SnowyДело не только в этомsmile К примеру, если мне не изменяет память, в TMemo входит лишь 65536 строк, хотя он тоже использует TStrings для хранения строк. Все дело в том, может ли Windows-контрол, в котором размещаются все эти строки, поместить их все. Можно просто протестировать возможности компонета самому, либо почитать MSDN по соответствующим Windows-контролам, обертками которых являются VCL-компоненты.

Автор: Snowy 27.1.2005, 14:17
Я конечно дико извиняюсь, может я с цифрой погорячился... Может для 95-х она будет другой...
Но сейчас я для теста накатал программку, которая тупо крутит цикл от 1 до MaxListSize и добавляет строки в Tmemo. На 1.5млн строк мне надоело и я поменял Memo на ComboBox. Эффект тот же. Я думаю, что для XP цифра в 65536 уже не актуальна.

Автор: Rennigth 27.1.2005, 14:22
Snowy
я дождался 2.5 мил. , такое ощущение что он может добавлять пока память не кончится.

Автор: <Spawn> 27.1.2005, 14:27
Цитата(Snowy @ 27.1.2005, 16:17)
Я конечно дико извиняюсь, может я с цифрой погорячился... Может для 95-х она будет другой...
Но сейчас я для теста накатал программку, которая тупо крутит цикл от 1 до MaxListSize и добавляет строки в Tmemo. На 1.5млн строк мне надоело и я поменял Memo на ComboBox. Эффект тот же. Я думаю, что для XP цифра в 65536 уже не актуальна.

Все может быть. Просто тут неоднократно были темки про данную проблему TMemo. http://forum.vingrad.ru/index.php?showtopic=25753&hl=tmemo

Автор: Snowy 27.1.2005, 15:31
Проблема известная. Я думаю, что она имеется только в 9х, а в NT ее уже пофиксили. Нужно проверить, сможет ли пройти такой цикл от 1 до MaxListSize в 9х
Добавлено @ 15:37
Если не сможет, то проверять версию операционки и, если 9х, то уменьшать до 65536

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)