![]()  | 
	
 
  | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Допустим есть TImage размером 256х256 в него загрузено изоражение 1024х768. Как двигать попиксельно изображение внтури Image? 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#2  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Что ты имеешь ввиду???  
		
	
		
		
		
		
			
		
		
		
		
		
			Анимацию??? Или просто в Image видно только часть изображения??? Посмотри на функцию BitBlt...удобна для создания спрайтов...и не только... Копирует часть изображения в другое... Последний раз редактировалось NIch, 04.03.2010 в 14:26.  | 
| 
		 
			 
			#3  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 нет. не анимацию. нужно загружать в Image карту города и спомощю мышки передвигатся по ней. 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#4  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Обязательно в Image??? 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	Код: 
	var
 Map : TBitMap;
begin
 Map := TBitMap.Create;
 Map.LoadFromFile('Map.bmp');
 BitBlt (Form1.Canvas.Handle,//на какую форму вывести изображение
          100, 100, 256, 256, //2 координаты и размеры изображения
          Map.Canvas.Handle,//какую картинку вывести
          0, 0,//координаты начала прямоугольника картинки должны изменяться
          SRCCOPY);//способ копирования изображения , бывают разные 
end;Выводится изображение способом SRCCOPY на Form1 размером 256х256 по координатам 100, 100, взятое из Map. При этом из Map берется только кусок 256х256 начиная с 0, 0 (в данном случае)... При движении мыши ты должен пересчитывать последние координаты...  | 
| 
		 
			 
			#5  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Большое спасибо NIch!!! Буду пробывать. 
		
	
		
		
		
		
		
	
		
		
	
	
	Если не сложно еще показать маленький пример как обрабатывать движение мыши. Только учусь работать с графикой...  | 
| 
		 
			 
			#6  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Есть такие события как MouseMove, MouseUp, MouseDown... 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	Обрабатывай эти события...У них в параметрах есть переменные X и Y мыши... Поэкспериментируй с таким кодом и все поймешь... Код: 
	onMouseDown(X, Y ...) или Move или Up и т.д.
begin
 ShowMessage('X = '+IntToStr(X)+' Y = '+IntToStr(X));
end; | 
| 
		 
			 
			#7  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Зачем использовать TImage, если для работы с большими картинками специально сделан компонент TScrolBox. 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#8  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Может и вариант...А как его найти??? 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#9  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 А зачем его искать?)) 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#10  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Ну дык, как его на форму кинуть, где, в какой панели его взять???  
		
	
		
		
		
		
			
		
		
		
		
		
			Или это сторонний компонент??? Чуть позже... Ага нашел, но ведь он не работает с изображениями, по сабжу нужно на него Image кидать размером с изображение... Последний раз редактировалось NIch, 05.03.2010 в 10:26.  | 
| 
		 
			 
			#11  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Ну дык и в чем проблема в нем динамически image создать по размерам картинки, хотя у image-a насколько я помню есть свои проблемы при работе с большими картинками. В идеале здесь нужен компонент с буферизацией, тогда работать будет быстро и надежно) 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#12  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Спасибо NIch буду пробывать твой вариант с BitBlt. А на счет Image то не обязательно просто ищу вариант как работать с картами. Возможно будут еще какие-то решения? 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#13  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 2 Asinkrit 
		
	
		
		
		
		
			
		
		
		
		
		
			Ну дык, а кто говорит, что есть какая то проблема??? Я вообще предложил выше отказаться от TImage и работать непосредственно с изображением и рисовать прямо на форме... 2 movnet Кой какой опыт есть, если что обращайся, че нить придумаем... Последний раз редактировалось NIch, 05.03.2010 в 11:30.  | 
| 
		 
			 
			#14  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 NIch опыта работы с графикой практически 0. 
		
	
		
		
		
		
		
	
		
		
	
	
	   только начинаю вникать. Буду благодарен за любую помощь!!! | 
| 
		 
			 
			#15  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Ну вот вам пример работы с большой картинкой. 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	Код: 
	procedure TForm43.FormCreate(Sender: TObject);
Var
  Img: TImage;
begin
 Img := TImage.Create(Self);
 Img.Parent := ScrollBox1;
 Img.Picture.LoadFromFile('YouBitmap.bmp');
 Img.Width := Img.Picture.Width;
 Img.Height := Img.Picture.Height;
end; |