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

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

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

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

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

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

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

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

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

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

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

Мне тоже интересно было бы узнать сможет ли справиться HiAsm.NET с этим монстром.
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Ответов: 4628
Рейтинг: 749
#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
Разработчик
Ответов: 26113
Рейтинг: 2126
#24: 2020-01-23 12:03:30 ЛС | профиль | цитата
Netspirit писал(а):
Поэтому и счетчик GDI упирается в квоту 10000

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

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

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

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

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


ps. Честно, сам уже не рад, что взялся за этот проект. Там и графики строить, и график работы сотрудников составлять, и планирование тех.работ с напоминалками... Ну и базы данных, конечно же.
карма: 9
0
Ответов: 16884
Рейтинг: 1239
#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
Ответов: 1926
Рейтинг: 172
#27: 2020-01-25 11:23:51 ЛС | профиль | цитата
Tad, всё уже исправлено, спасибо.
карма: 9
0
27
Сообщение
...
Прикрепленные файлы
(файлы не залиты)