Страница 1 из 1
					
				Out of Memory (heap overflow
				Добавлено: 17 Декабрь 2011, 1:39
				 muskin
				Здравствуйте.
C6.3(ABC)
Возникла такая проблема.
Редактирую форму, на ней ,примерно, около 400 объектов (16 однотипных region-ов, в каждом по 22 элемента, плюс еще разное).
Наступает момент, когда при копировании нескольких элементов возникает ошибка:
Storage Error
Out of Memory (heap overflow).
Оболочка Clarion-a вылетает.
Подскажите, где нужно увеличить heap_size.
			 
			
					
				Re: Out of Memory (heap overflow
				Добавлено: 17 Декабрь 2011, 9:50
				 Дед Пахом
				Проверьте размер структуры окна - она не может превышать 64K.
			 
			
					
				Re: Out of Memory (heap overflow
				Добавлено: 17 Декабрь 2011, 12:38
				 muskin
				Глупый вопрос - а как?
			 
			
					
				Re: Out of Memory (heap overflow
				Добавлено: 17 Декабрь 2011, 14:17
				 Дед Пахом
				Зайдите в текстовое представление WINDOW и скопируйте в файл, ну и размер файла всё покажет.
			 
			
					
				Re: Out of Memory (heap overflow
				Добавлено: 17 Декабрь 2011, 16:48
				 muskin
				Получилось ~62KB.
Спасибо за науку.
			 
			
					
				Re: Out of Memory (heap overflow
				Добавлено: 17 Декабрь 2011, 16:51
				 Igor
				Попробуй динамически создавать контролы (CREATE(...))
			 
			
					
				Re: Out of Memory (heap overflow
				Добавлено: 17 Декабрь 2011, 17:20
				 muskin
				Скорее всего подойдет Clone(...), а для вставки embeds придется нумеровать поля.
			 
			
					
				Re: Out of Memory (heap overflow
				Добавлено: 17 Декабрь 2011, 19:37
				 Дед Пахом
				Кстати, ещё в 7-ке ограничнение на 64К сняли.
			 
			
					
				Re: Out of Memory (heap overflow
				Добавлено: 17 Декабрь 2011, 20:43
				 Дед Пахом
				Можно в текстовом представлении окна поудалять не сильно нужные атрибуты контролов, как то: TIP, FONT... Можно сэкономить пару-тройку килобайтов. А при необходимости восстановить их после OPEN(Window) с помощью ?ControlUse{prop:...}
			 
			
					
				Re: Out of Memory (heap overflow
				Добавлено: 17 Декабрь 2011, 23:28
				 Shur
				Не пытаясь обидеть автора. А все ли 16 регионов с 22 контролами каждый на одном экране?
Если нет, то может обойтись одним единственным? И чуть-чуть параметризации.
Если этот вариант не подходит, то лучше переходите на С7/C8, а то глядишь, вам 17-й регион понадобится. -- Там этой проблемы точно нет. Сам сталкивался и сражался с ней на С6. 
Проверялось и раньше при миграции приложения, и недавно, сам себе не доверяя за давностью, снова проверял, отвечая в телеконференцию.
Кстати, в 16-битной IDE есть и другие, сходные с этим, ограничения: на число элементов меню во фрейме; на число процедур в едином app. 
Учитывайте это при разработке.
			 
			
					
				Re: Out of Memory (heap overflow
				Добавлено: 18 Декабрь 2011, 2:30
				 muskin
				Всем спасибо за отклик. Все лишнее удалил (в основном Tip-ы и Ico-ы). Вопрос для меня решен.
Не думал, что для C6... это может служит ограничением. Для меня 64KB(Пахомыч) - это просто новая копилка.
			 
			
					
				Out of Memory (heap overflow
				Добавлено: 14 Октябрь 2016, 20:24
				 RaFaeL
				Отпишусь сюда, вдруг кому-то понадобится. Сегодня наткнулся на такую ошибку, но в другой ситуации - вылетало после сборки приложения. Кучу всего перекопал, нашел решение методом тыка - надо удалить файл C60pe.dat в папке с кларионом (у кого ентерпрайз видимо будет другое название). Там хранятся для чего-то все пути, когда-либо компилировавшиеся (может кэш какой), и когда он становится примерно 3,5 мб то возникает ошибка. Актуально только для С6 и скорее всего также для более ранних