Страница 1 из 2
Переполнение памяти при редактировании окна
Добавлено: 17 Июль 2013, 15:10
slav95211
Здравствуйте!
Вопрос такой. Есть довольно насыщенный экран с несколькими закладками. С некоторого момента при попытке включения нового объекта (например, чека) появляется сообщение Out of Memory (heap overflow) и Clarion аварийно закрывается. Можно ли что-то сделать с настройками например, чтобы расширить возможности по насыщению окна объектами. Есть для этого какие-то настройки Clariona или Windows? Разбивать экран на несколько не хотелось бы, да и неудобно. Спасибо.
Re: Переполнение памяти при редактировании окна
Добавлено: 17 Июль 2013, 15:39
Дед Пахом
Настроек таких вроде нет. Можно уменьшить объём памяти, укоротив USE-переменные, например было USE(?Button1), стало USE(?b1)
Re: Переполнение памяти при редактировании окна
Добавлено: 17 Июль 2013, 17:07
Алексей- Софт-Центр
Добрый день!
Попробуйте в project properties
убрать full моду отладчика и поиграть стеком, по умолчанию там 32К.
Алексей
Re: Переполнение памяти при редактировании окна
Добавлено: 17 Июль 2013, 17:18
kreator
Это либо Винда, либо версия Клаши кривая. Напишите конфигурацию стенда, плиз. И ещё попробуйте не в дизайнере, а в описании окна ручками ввести контрол. Что будет?
Re: Переполнение памяти при редактировании окна
Добавлено: 17 Июль 2013, 17:23
slav95211
Всем спасибо! Пока иду по пути сокращения имен меток. ПОсмотрю что будет. Результат отпишу.
Re: Переполнение памяти при редактировании окна
Добавлено: 17 Июль 2013, 17:36
Shur
Выхода два или 2 с половиной.
1. Перейти на C8 (там можно создавать экран более 32K)
2. Сократить по возможности имена меток (Дед писал уже)
2½. Какие-то из контролов создавать динамически при помощи CREATE, но не в структуре WINDOW.
Re: Переполнение памяти при редактировании окна
Добавлено: 18 Июль 2013, 8:58
Игорь Столяров
Была такая же беда, но с отчетом. Выловил, что рушится при добавлении нового элемента.
Вывел все линии в отдельный блок (их особо было много) и переписал их добавление в отчет через CREATE.
Работает уже года 3 без проблем ...

Re: Переполнение памяти при редактировании окна
Добавлено: 18 Июль 2013, 11:20
slav95211
Сократил имена всех меток. Всё получилось. Так что думаю запас еще будет, т.к. окно предназначено для задания параметров поиска и постоянно насыщается новыми параметрами. Всем еще раз спасибо!
Re: Переполнение памяти при редактировании окна
Добавлено: 18 Июль 2013, 11:41
Admin
А можно показать исходник окна поиска... для интереса
Re: Переполнение памяти при редактировании окна
Добавлено: 18 Июль 2013, 20:48
Губин Игорь
slav95211 писал(а):Сократил имена всех меток. Всё получилось. Так что думаю запас еще будет, т.к. окно предназначено для задания параметров поиска и постоянно насыщается новыми параметрами. Всем еще раз спасибо!
Была задача сделать окно
"для задания параметров поиска". Около 200 позиций, к каждой позиции до десятка параметров.
Решилось переводом позиций в LIST и маской для отображения в нужных местах нужных полей для ввода и сокрытия ненужных. Когда пользователь нажимает кнопочку "внести", то значения экранных полей переносятся в массив параметров для конкретной позиции.
Теперь нет никаких проблем с количеством позиций - могу наращивать сколько угодно, т.к. фактически на самом экране всего полсотни контролов.
Может и тут можно использовать аналогичный подход?
Re: Переполнение памяти при редактировании окна
Добавлено: 20 Июль 2013, 22:50
Shur
slav95211 писал(а):Здравствуйте!
Вопрос такой. Есть довольно насыщенный экран с несколькими закладками. С некоторого момента при попытке включения нового объекта (например, чека) появляется сообщение Out of Memory (heap overflow) и Clarion аварийно закрывается. Можно ли что-то сделать с настройками например, чтобы расширить возможности по насыщению окна объектами. Есть для этого какие-то настройки Clariona или Windows? Разбивать экран на несколько не хотелось бы, да и неудобно. Спасибо.
(Продолжая мысль Игоря) Вот уж что-что, а чеки как раз очень вписываются в один единственный контрол List. Убирайте их все к чёртовой бабушке. И закладки расчистятся, и юзер не будет глазами лихорадочно шастать по экрану в поисках нужной. И управлять (создавать/отображать) ими сможете на уровне БД, не трогая каждый раз интерфейс.
...Помнится на прежней работе у меня так и было. Как раз когда экран перестал помещать все необходимые контролы, я, укоротив имена меток, из последних ресурсов создал лист-контрол. И все следующие чеки уже создавал в нем.
Re: Переполнение памяти при редактировании окна
Добавлено: 20 Июль 2013, 23:06
Shur
(Пусть будет отдельной репликой, а то вдруг спорить из-за этого начнём!

). Вот ещё какая мысль пришла. Если у вас не хватает ресурсов под создание нового контрола в окне, надо сильно задуматься над эргономикой и дизайном окна, возможно проконсультироваться у дизайнера пользовательских интерфейсов. Скорее всего, что у вас что-то сделано не так.
Re: Переполнение памяти при редактировании окна
Добавлено: 21 Июль 2013, 1:33
Дед Пахом
Shur писал(а):Если у вас не хватает ресурсов под создание нового контрола в окне, надо сильно задуматься над эргономикой и дизайном окна, возможно проконсультироваться у дизайнера пользовательских интерфейсов. Скорее всего, что у вас что-то сделано не так.
Не факт. Допустим, на окне 300 Tab-ов, на каждом Tab-е с пяток контролов, только один Tab доступен. С точки зрения юзера и дизайнера всё зашибись.
Re: Переполнение памяти при редактировании окна
Добавлено: 21 Июль 2013, 11:16
Губин Игорь
Тогда НЕ ЗАШИБИСЬ с точки зрения программирования. Ясно же, что 300 табов это перебор.
Значит надо как-то оптимизировать это окно. Ведь даже 100 табов одновременно на экране не поместятся!
Я как-то проводил исследование (правда ещё на CW2) - простое присвоение {PROP:Text} в окне из 150 контролов занимало полторы секунды.
Re: Переполнение памяти при редактировании окна
Добавлено: 22 Июль 2013, 20:56
Shur

Игорь, не принимай близко к сердцу, это Дед стебётся: 300 табов с пятком контролов в каждом -- это примерно то же самое, что и 200 позиций для поиска с 10 параметрами каждая!