在窗体上把一个图象的大小扩大一倍后,再用canvas.fillrect方法重新把图象的背景绘成白色,为什么图象没有变化呢?(100分)

  • 主题发起人 主题发起人 ynfly
  • 开始时间 开始时间
Y

ynfly

Unregistered / Unconfirmed
GUEST, unregistred user!
在一个窗体上放置一个Image和两个按钮,一个为【创建白色背景】,另外一个名为【加大图片一倍】,
实际运行时先运行【创建白色背景】按钮代码,再运行【加大图片一倍】按钮代码;
【创建白色背景】的单击事件代码为:
image1.Canvas.Brush.Color :=clWhite;
image1.Canvas.FillRect(Rect(0,0,image1.Width ,image1.Height ));
//此程序执行后,可以看到image已经完全被白色填充了;
【加大图片一倍】的单击事件代码为:
image1.Width :=image1.Width *2;
image1.Height :=image1.Height *2;
image1.Canvas.Brush.Color :=clWhite;
image1.Canvas.FillRect(Rect(0,0,image1.Width ,image1.Height ));
//此段代码运行后,可以发现Image1的大小确实为原来的一倍,但是Image没有被白色完全填充,白色范围依然是上一个按钮执行后填充的白色范围。
请各位XDJM给我一个答复,十分感谢!
 
很简单,你扩大一倍的时候,仅仅扩大了image这个玩意的面积,它里面的bitmap并没有扩大(这其实是delphi的bug),所以你还需要:
image1.picture.bitmap.width:=....
image1.picture.bitmap.height:=....
 
image1.Stretch:=True;
就行了。
 
我测试过了,你们说的都对,谢谢你们,一人50分
 

Similar threads

I
回复
0
查看
555
import
I
I
回复
0
查看
622
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部