| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			 
			
			Добрый день. 
		
		
		
		
		
		
		
	Пытаюсь программно добавить контрол на форму, вызываю следующий код после super в init на форме: X++:     FormWindowControl   ctrlImage;
    ;
    ctrlImage = groupImageList.addControl(FormControlType::Image, 'Image');
    ctrlImage.dataSource(ItemImage_ds.id());
    ctrlImage.dataField(fieldNum(ItemImage, Image));
    ctrlImage.widthMode(FormWidth::ColumnWidth);
    ctrlImage.heightMode(FormHeight::ColumnHeight);Если контрол добавить через AOT и выставить dataSource и dataField, то картинка отрисовывается корректно. Если программно создать форму с этим контролом, то картинка отображается. Вопрос: Что нужно еще сделать, чтобы на форме начала отображаться картинка? если мы контрол добавляем программно. AXAPTA 2009  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Заведите десяток invisible контролов. Когда надо можно сделать visible, поменять прочие свойства. Порядок следования тоже можно менять вызовом move() 
		
		
		
		
		
		
		
	Изврат, но чего не сделаешь.  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Не проверял. Предположение. Разные команды обновления не пробовали? Ну, на вскидку 
		
		
		
		
		
		
			ctrlImage.visible(true); ItemImage_ds.reread(); ItemImage_ds.refresh(); element.redraw(); Возможно, поможет еще сделать саму форму невидимой, добавить объект, затем отобразить форму 
				__________________ 
		
		
		
		
	- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря...  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Я бы сначала попробовал заполучить картинку в объект image = new Image(), а потом передать его контролу: ctrlImage.image(image). 
		
		
		
		
		
		
		
	Ну и поигрался с методами colorScheme и backgroundColor. Еще смущают методы widthMode и heightMode, попробуйте выставить изначально конкретные размеры widthValue(32), heightValue(32).  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Если я правильно понял автора - там проблема воспроизводится именно в связке с датасорсом.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: demianimp (3). | |
| 
			
			 | 
		#6 | 
| 
			
			 NavAx 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Ткну пальцем в небо: когда програмно добавлено, то размер контрола 0 на 0.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Прикладываю картинку, чтобы было понятно что происходит. 
		
		
		
			Верхняя часть добавляется программно, нижнею часть добавил через AOT.  | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Можете проект выложить?
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Ivanhoe as is..  | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Выкладываю форму. 
		
		
		
			\Forms\FormItemImageTest\Data Sources\ItemImage - нужно указать таблицу, где есть картинка; \Forms\FormItemImageTest\Designs\Design\Window:AotImage - указать поле с картинкой; \Forms\FormItemImageTest\Methods\init - указать таблицу и поле, где находится картинка.  | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
 | 
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Проверил вашу форму в ax2012 r3, у меня работает ваш код(и для типа поля контейнер и для типа поле числовой), т.е. картинка отображается, а у вас точно не отображается? Просто судя по скрину размер контрола, который видно в гриде существенно меньше самого рисунка, не может быть так что там есть отображение но только левый крайний угол картинки, при запуске формы вот так у меня(см. скриншот). 
		
		
		
			Но если например сделать вот так X++:     ctrlImage.width(200);
    ctrlImage.height(200);X++: ctrlImage.image().resize(32,32, InterpolationMode::InterpolationModeBicubic); 
				__________________ 
		
		
		
		
	Sergey Nefedov  | 
| 
	
 | 
| 
			
			 | 
		#12 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от SRF
			 
 
			Проверил вашу форму в ax2012 r3, у меня работает ваш код(и для типа поля контейнер и для типа поле числовой), т.е. картинка отображается, а у вас точно не отображается? Просто судя по скрину размер контрола, который видно в гриде существенно меньше самого рисунка, не может быть так что там есть отображение но только левый крайний угол картинки, при запуске формы вот так у меня(см. скриншот). 
		
	Но если например сделать вот так X++:     ctrlImage.width(200);
    ctrlImage.height(200);X++: ctrlImage.image().resize(32,32, InterpolationMode::InterpolationModeBicubic);  | 
| 
	
 | 
| 
			
			 | 
		#13 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Если вместо 
		
		
		
		
		
		
		
	X++:     ctrlImage.dataSource(ItemImage_ds.id());
    ctrlImage.dataField(fieldNum(ItemImage, Image));X++: ctrlImage.imageResource(412);  | 
| 
	
 | 
| 
			
			 | 
		#14 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			нашли решение 
		
		
		
		
		
		
		
	Нужно было делать через X++:  groupImageList.addDataField(ItemImage_ds.id(), fieldNum(ItemImage, Image)); | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Logger (3), Raven Melancholic (5). | |