![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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. |