Вверх ↑
Ответов: 1926
Рейтинг: 172
#1: 2020-01-21 18:36:58 ЛС | профиль | цитата
Netspirit писал(а):
посмотри в "Диспетчере задач" значения "Объекты USER" и "Объекты GDI" для процесса HiAsm

Объекты USER = 195
Объекты GDI = 9 999

nesco писал(а):
были любители использовать 100500 интерфейсных элементов на форме

Ну да, интерфейсных многовато, но от них никуда не деться. К тому же большинство однотипных запихнуты в динамические панели и создаются уже в runtime.

Nic писал(а):
Уже делал предположение что виноваты менеджеры

Нет, в том куске, который я копировал, свойств-менеджеров не было. Да и проблем с менеджерами тоже никогда не возникало: при копировании ссылка на менеджер (читай: количество parent.parent...) автоматически изменяется на нужную, тут на hiasm грешить не приходится.

--- Добавлено в 2020-01-21 18:48:13

В общем, попробовал поставить HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\GDIProcessHandleQuota = 20 000.
Вроде получилось: в Диспетчере теперь за 10 000 показывает, но hiasm никаких ошибок не выдаёт.

А по поводу архитектуры программы: что тут ещё сделаешь, если функций много и логика непростая. И так всё, что можно, интерфейсное поубирал в динамические панели, а ещё стараюсь один и тот же кусок использовать для разных функций, меняя только исходные данные. Дальше только одно - вместо связки нескольких компонентов их код просто делать на IC, но это уж совсем извращение.
карма: 9
0
Редактировалось 1 раз(а), последний 2020-01-21 18:48:13