怎样填充背景(50分)

  • 主题发起人 主题发起人 dohye
  • 开始时间 开始时间
D

dohye

Unregistered / Unconfirmed
GUEST, unregistred user!
onformcreate;
var
Bitmap: TBitmap;
begin
Bitmap := TBitmap.Create;
try
Bitmap.LoadFromFile('MyBitmap.bmp');
Form1.Canvas.Brush.Bitmap := Bitmap;
except
Form1.Canvas.Brush.Bitmap := nil;
Bitmap.Free;
end;
end;
onformpaint;
Canvas.FillRect(ClientRect);
这段程序的结果为什么是背景一片白色而不是MyBitmap.bmp的填充.
请各位大虾尽快帮我一把.
 
是不是没有刷新的问题,我先写一下代码在告诉你.
 
我试过了,没问题。我的bmp填充得很好。是不是mybitmap.bmp的事啊。
 
你这是干什么,只是加个背景吗?哪有这么麻烦。
上月有位大侠很有名的一行解决中就有这个(我一时想不起来这位大侠的名字了,
很对不起人家)。以下是他对此的一行解决:

3.关于FORM背景新解(包含MDI) ( 一行解决问题!!!!) (推荐)
在Form中添加Image控件
设BMP图象
name为 IMG_BK
在Form的Create事件中写入
Self.brush.bitmap:=img_bk.picture.bitmap;

试试吧!我试着很好用。
 
程云:他的方法差不多,主要是问题不在这里。
 
是啊!我实在看不出是为什么,我试过多次,没有问题。
 
>>onformpaint;
>> Canvas.FillRect(ClientRect);

这是干什么用的?
 
你的图象文件是不是有问题,换个图试试
 
>>>Form1.Canvas.Brush.Bitmap := Bitmap;
应该是form1.brush.bitmap := bitmap;
form1.canvas.brush会随canvas的改变而改变.
这个canvas可不是一直存在的哦. 是form需要刷新时建立的. 经常被改变的
 
我试过了,没问题. 你的操作系统是什么?
 
我一般是这么写的,
Bitmap := TBitmap.Create;
try
Bitmap.LoadFromFile('MyBitmap.bmp');
Canvas.Brush.Bitmap := Bitmap;
Canvas.FillRect(ClientRect);
finally
Form1.Canvas.Brush.Bitmap := nil;
Bitmap.Free;
end;
 
我试了这种方法,在我的机子上运行很好,但是就是在别人的机子上不行,背景
全都是花的,可能这种方法兼容性不好,好象是显卡不同就不行。
 
要win97以上操作系统才行. win95的brush.bitmap有大小限制(好象是32*32)
 
请继续讨论或结束问题
 
注意;位图文件的存放目录应在同一目录下,否则,应指定具体的目录。
 
看不出来!!
 
我试过了,非常好用,比我看到的另一种方法强多了,谢谢程云。
而且,没有图片大小限制。
 
接受答案了.
 
后退
顶部