Вверх ↑
Этот топик читают: Гость
Ответов: 1946
Рейтинг: 176
#16: 2020-01-21 18:50:29 ЛС | профиль | цитата
Netspirit, выше дополнил про повышение квоты. И отплюсовал тоже, спасибо.
карма: 10
0
Разработчик
Ответов: 26343
Рейтинг: 2149
#17: 2020-01-22 01:30:54 ЛС | профиль | цитата
3042 писал(а):
выше дополнил про повышение квоты

Надо не квоту повышать, а подумать над нормальным интерфейсом. Системный интерфейс хорош пока его немного, после преодоления интерфейсными элементами определенного количества на форме начинается трэш и угар. Давно пора уже осваивать самодельный рисованный интерфейс. Да, не совсем уж элементарно, но оно того стоит.

Редактировалось 1 раз(а), последний 2020-01-22 01:31:30
карма: 23

0
Ответов: 4675
Рейтинг: 768
#18: 2020-01-22 18:05:57 ЛС | профиль | цитата
Ну, как уже замечали, речь идёт о самом HiAsm, когда без повышения квоты тупо не удаётся открыть схему. А HiAsm никто исправлять не будет - так что либо повысить квоту, либо уменьшить количество компонентов в схеме. А свои программы - да, следить, чтобы такого не было.
карма: 26

0
Разработчик
Ответов: 26343
Рейтинг: 2149
#19: 2020-01-22 18:11:40 ЛС | профиль | цитата
Netspirit писал(а):
речь идёт о самом HiAsm

А вот теперь вопрос -- какие элементы в среде HiAsm вызывают переполнение GDI-ресурсов, случаем не интерфейсные?
карма: 23

0
Ответов: 4675
Рейтинг: 768
#20: 2020-01-22 18:25:05 ЛС | профиль | цитата
Мой ответ касался "а подумать над нормальным интерфейсом" - в данном случае думать некому.
nesco писал(а):
случаем не интерфейсные?
Предполагаю - проблемы создаёт отрисовка иконок компонентов и заливка цветом на рабочем поле HiAsm. Чем больше компонентов - тем больше создаётся хендлов, которые остаются "жить" тогда, когда не нужны.
Если это так, то возможное решение - оставлять хендлы только для компонентов текущего контейнера, который видимый на экране и постоянно перерисовывается. Остальные хендлы удаляются по выходе из контейнера.
Если при отрисовке иконки копия иконки/битмапа создаётся для каждого компонента на поле - то исправить чтобы иконка хранилась только для каждого элемента палитры и бралась оттуда при отрисовке на поле.

Редактировалось 1 раз(а), последний 2020-01-22 18:25:38
карма: 26

0
Разработчик
Ответов: 26343
Рейтинг: 2149
#21: 2020-01-23 03:57:49 ЛС | профиль | цитата
Netspirit писал(а):
Предполагаю - проблемы создаёт отрисовка иконок компонентов и заливка цветом на рабочем поле HiAsm. Чем больше компонентов - тем больше создаётся хендлов, которые остаются "жить" тогда, когда не нужны.

А вот теперь стало очень интересно -- а сколько, собственно, компонентов в схеме коллеги 3042, и сколько из них покрашенных?
карма: 23

0
Главный модератор
Ответов: 3001
Рейтинг: 396
#22: 2020-01-23 08:15:17 ЛС | профиль | цитата
Nic писал(а):
Попытайтесь открыть в HiAsm.NET - вдруг чудо произойдёт...

Мне тоже интересно было бы узнать сможет ли справиться HiAsm.NET с этим монстром.
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Ответов: 4675
Рейтинг: 768
#23: 2020-01-23 11:52:15 ЛС | профиль | цитата
nesco писал(а):
а сколько, собственно, компонентов в схеме коллеги 3042, и сколько из них покрашенных?

3042 писал(а):
В довольно объёмном проекте (~10к компонентов)
Поэтому и счетчик GDI упирается в квоту 10000.

А покрашены они все - как минимум, в серый цвет. Поэтому вопрос - каким образом происходит работа с цветом (объекты Brush) при рисовании схемы. Кроме того есть рисование иконки - вопрос тоже в том как используются объекты иконки (вероятно, в виде Bitmap). А на компонентах типа Math ещё используются текстовые надписи - объекты Font. Возможно используются ещё и Region.
А ещё ж и точки с линиями рисуются.

Редактировалось 3 раз(а), последний 2020-01-23 13:27:18
карма: 26

0
Разработчик
Ответов: 26343
Рейтинг: 2149
#24: 2020-01-23 12:03:30 ЛС | профиль | цитата
Netspirit писал(а):
Поэтому и счетчик GDI упирается в квоту 10000

Че там можно написать на 10k компонентов, это выше моего понимания? Больше чем уверен, что спокойно можно оптимизировать раза в 1.5...2.
карма: 23

0
Ответов: 1946
Рейтинг: 176
#25: 2020-01-25 09:03:17 ЛС | профиль | цитата
Nic писал(а):
сможет ли справиться HiAsm.NET с этим монстром

Так насколько я понимаю, там пакет windows ещё в зачаточном состоянии?

nesco писал(а):
спокойно можно оптимизировать раза в 1.5...2.

3042 писал(а):
И так всё, что можно, интерфейсное поубирал в динамические панели, а ещё стараюсь один и тот же кусок использовать для разных функций, меняя только исходные данные. Дальше только одно - вместо связки нескольких компонентов их код просто делать на IC, но это уж совсем извращение.


ps. Честно, сам уже не рад, что взялся за этот проект. Там и графики строить, и график работы сотрудников составлять, и планирование тех.работ с напоминалками... Ну и базы данных, конечно же.
карма: 10
0
Ответов: 16884
Рейтинг: 1240
#26: 2020-01-25 10:27:54 ЛС | профиль | цитата
3042, попробуй:
1. Закрой HiAsm
2. Зайди в Elements\Delphi\code
3. Найди файл b.bat и запусти его.
4. Запусти HiAsm

Редактировалось 1 раз(а), последний 2020-01-25 10:30:27
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 1946
Рейтинг: 176
#27: 2020-01-25 11:23:51 ЛС | профиль | цитата
Tad, всё уже исправлено, спасибо.
карма: 10
0
Ответов: 275
Рейтинг: 1
#28: 2026-05-06 20:01:51 ЛС | профиль | цитата
Ывайфцуа


Третий раз переписываю сообщение. Тупо не отправляется.... ррр..

У меня другая фигня: веду большой проект ( не знаю скока там компонентов использовано) но если открыть блокнотом sha-файл, то порядка 85тыс строк. На днях появилась потребность "задвоить" проект для добавления и проверки новых функций. Теперь Хаясм не загружается вообще, вылетает при загрузке. Потому что во вкладке торчит старый проект из которого я хотел скопировать несколько элементов схемы. Начал облегчать... все картинки в dll, всякие задвоенные функции в одну итд... Тогда открылся проект, но скопировать - вставить что то в него не получается, зеленый трекбар хаясма еле движется, зависает, хаясм вылетает и машет рукой.

Tad писал(а):
1. Закрой HiAsm
2. Зайди в Elements\Delphi\code
3. Найди файл b.bat и запусти его.
4. Запусти HiAsm

не помогло

3042 писал(а):
Tad, всё уже исправлено, спасибо.

не помогло


Может есть какой то темп-файл который надо переодически чистить?...

Редактировалось 1 раз(а), последний 2026-05-06 20:16:23
карма: 1

0
Ответов: 227
Рейтинг: 7
#29: 2026-05-07 07:54:26 ЛС | профиль | цитата
https://vk.com/topic-234634991_55734143

Если происходит падение БОЛЬШОГО проекта с ошибкой "Out of system resources" из-за расходования всех ресурсов GDI, то можно
повысить количество допустимых хендлов на процесс в этом ключе реестра: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\GDIProcessHandleQuota (макс. 65535). Иногда чрезмерно большое количество открытых хендлов в программе свидетельствует об утечке ресурсов. Советую оптимизировать ресурсы в проекте (картинки, иконки, например). Лучше использовать общие менеджеры для многооконных панелей.
Проверено. Если скажешь не помогло - тебе уже ничего не поможет.

Редактировалось 5 раз(а), последний 2026-05-07 08:04:59
карма: 1
Сообщество Hiasm в VK https://vk.com/club_hiasm (компоненты, статьи, схемы).
0
Ответов: 275
Рейтинг: 1
#30: 2026-05-08 01:06:26 ЛС | профиль | цитата
У меня нет конкретно этой ошибки "Out of system resources", да немного оффтоплю. Есть проблема с большой схемой.
карма: 1

0
30
Сообщение
...
Прикрепленные файлы
(файлы не залиты)