![]()  | 
	
 
  | 
		
			
  | 	
	
	
		
		|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
![]()  | 
	
	
| 
		 | 
	Опции темы | Поиск в этой теме | Опции просмотра | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 В общем, суть такова, что любое изменение рисунка заносится в DrawGrid. При нажатии кнопки - должно вырисовывать значение ячейки DrawGrid'a -1. Вот участок кода, отвечающий за отмену, но почему-то выбивающий ошибку. Помогите разобраться плз 
		
	
		
		
		
		
		
	
		
		
	
	
	Код: 
	if i>0 then begin i:=i-1; //счетчик ячеек bitmap.Height:=DrawGrid1.DefaultRowHeight; //Высота битмапа по высоте ячейки bitmap.Width:=DrawGrid1.DefaultColWidth; //Ширина битмапа по ширинее ячейки bitmap.Canvas.CopyRect(DrawGrid1.CellRect(0,i),bitmap.Canvas,bounds(0,0,bitmap.Width,bitmap.Height)); //Копируем содержание ячейки в битмап Image1.Picture.Bitmap:=bitmap; //Присваиваем Image содержние битмапа img.Width:=Image1.ClientWidth; //Ширина условного изображения по ширине Image buffer.Height:=Image1.ClientHeight; //Тоже самое img.Height:=Image1.ClientHeight; //Высота условного изображения по высоте Image buffer.Height:=Image1.ClientHeight; //Тоже самое PaintBox1.ClientHeight:=Image1.ClientHeight; //Высота и ширина пейнтбокса по имеджу PaintBox1.ClientWidth:=Image1.ClientWidth; // img.Canvas.CopyRect(bounds (0,0,Image1.Width,Image1.Height),Image1.Canvas,bounds(0,0,Image1.Width,Image1.Height)); // Копируем содержание Имеджа в условное изображение buffer.Assign(img); // Тоже самое PaintBox1.Canvas.CopyRect(bounds(0,0,img.Width,img.Height), img.Canvas,bounds(0,0,img.Width,img.Height)); // рисуем в пейнтбокс end; Зы, просьба руки не ломать, только учусь)  | 
| 
		 
			 
			#2  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Код: 
	img.Canvas,bounds(0,0,img.Width,img.Height)); // рисуем в пейнтбокс И что там делает зпт? Да и что-то я не уверен, что есть такой метод. Обычно отрисовка это Draw или StretchDraw.  | 
| 
		 
			 
			#3  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Я тоже сразу на это обратил внимание, но когда пригляделся оказалось что это просто передаваемые параметры: 
		
	
		
		
		
		
		
	
		
		
	
	
	Код: 
	PaintBox1.Canvas.CopyRect(bounds(0,0,img.Width,img.Height), img.Canvas,bounds(0,0,img.Width,img.Height)); // рисуем в пейнтбокс Templar, напиши текст сообщения об ошибке.  | 
| 
		 
			 
			#4  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Спасибо, уже не надо, разобрался. У меня DrawGrid не перерисовывался, да и как его перерисовать-то я не сильно-то и понял, так как у меня туда заносилось каждое изменение. Сейчас делаю через ImageList, принцип тот же. И все равно не работает) 
		
	
		
		
		
		
		
		
			Код: 
	procedure TForm1.Imagelisting;
begin
  If (i<=50) and (i>=1) then
    begin
      Image1.Picture.Bitmap:=bitmap;
      ImageList1.Height:=img.Width;
      ImageList1.Width:=img.Height;
      bitmap.Transparent:=True;
      ImageList1.InsertMasked(i,bitmap,bitmap.TransparentColor);
      i:=i+1;
    end
  else
    begin
      for i:=50 downto 1 do
        begin
          GetImgListBitmap(ImageList1, i, Bitmap);
          bitmap.Transparent:=true;
          Imagelist1.ReplaceMasked(i-1,bitmap,bitmap.TransparentColor);
        end;
      i:=50;
    end;
end;Генерирует сообщение "Unable to Replace Image" ------------------------------- нашел ошибку, почему так выходит. В событии формы oncreate i:=1;, но данная процедура почему игнорирует это Последний раз редактировалось Templar, 20.12.2010 в 22:24.  |