L
LearningAug
Unregistered / Unconfirmed
GUEST, unregistred user!
我的代码如下:
//面板Panel的Resize函数,Image放在此Panel上的,Image的大小随Panel改变而改变
procedure Tfrm_main.PanelResize(Sender: TObject);
var
BackBitmap: TBitmap;
begin
BackBitmap := TBitmap.Create;
try
BackBitmap.Assign(Image1.Picture.Bitmap); // 先将原来画的东西保存起来
Image1.Picture.Graphic := nil; //清除原来的内容,否则没法改变大小。
Image1.Width := Panel.Width;
Image1.Height := Panel.Height;
Image1.Canvas.Draw(0, 0, BackBitmap); // 再把原图画回去
finally
BackBitmap.Free;
end;
end;
但是当Panel的大小改变后,尤其是被缩小后,Image中已画的图形会被Panel的边框擦除掉,请问应该怎么解决这个问题?
//面板Panel的Resize函数,Image放在此Panel上的,Image的大小随Panel改变而改变
procedure Tfrm_main.PanelResize(Sender: TObject);
var
BackBitmap: TBitmap;
begin
BackBitmap := TBitmap.Create;
try
BackBitmap.Assign(Image1.Picture.Bitmap); // 先将原来画的东西保存起来
Image1.Picture.Graphic := nil; //清除原来的内容,否则没法改变大小。
Image1.Width := Panel.Width;
Image1.Height := Panel.Height;
Image1.Canvas.Draw(0, 0, BackBitmap); // 再把原图画回去
finally
BackBitmap.Free;
end;
end;
但是当Panel的大小改变后,尤其是被缩小后,Image中已画的图形会被Panel的边框擦除掉,请问应该怎么解决这个问题?