Максимальное количество компонентов в ScrollBox (TScrollBox)
Я разработал программу, которая использует компонент для создания «железнодорожного макета». Этот маршрут состоит из множества маленьких фигурок, каждая из которых представляет отдельный отрезок пути (согласно идее железнодорожного моделирования).
Я заметил, что для совсем небольших чисел софт работает без проблем. Но проводя различные отладочные тесты, уже с 3500 бинарниками начинает вести себя аномально, а с 5000 штук программа неприлично вылетает!
Я хотел бы уточнить, что эта первая версия программного обеспечения была разработана с помощью "Delphi 5 Professional" в среде "Windows XP Professional". Думал проблема в маленьком объеме ОЗУ (максимум 3гб), что не позволяет выделить больше определенного количества штук, хотя при грубом подсчете я мог пожалуй выделить не меньше 16000 штук.
Затем я попытался изменить программное обеспечение, чтобы адаптировать его к «Delphi XE2» в среде «Windows 8.1 Professional X64», сгенерировав 64-битный код, но проблема, описанная выше, все еще возникает.
На данный момент я задаюсь вопросом, заключается ли проблема в возможном ограничении компонента. Существует ли максимальное количество компонентов, которые можно разместить наTScrollBox
? Если да, то есть ли способ победить эту проблему?
1 ответ
Это ограничение не TScrollBox, а самой ОС.
Основное ограничение, налагаемое оконным менеджером, заключается в том, что ни один процесс не может создать более 10000 объектов USER или GDI.
Поскольку, вероятно, вы используете потомков TWinControl, скорее всего, вы достигли этого предела.