在Form上显示图象(100分)

  • 主题发起人 主题发起人 xgd
  • 开始时间 开始时间
X

xgd

Unregistered / Unconfirmed
GUEST, unregistred user!
不用Timage显示图象的控件,在纯form上显示各类型图象.(bmp,Jpg,..),当Form改变大小时,
图象能自适应.当Form 重画时,不能看到图象重画的情景,(刷新快),另外对系统资源的占用要
尽可能的小.请高手指点,将不胜感激!
 
bitmap.loadfromfile()

procedure onpaint;
begin
...
form.canvas.draw(...,bitmap);
end;
 
1. 图象格式全部转成TBitmap.
2.
TxxxxForm = class(TForm)
private
......
FBkgnd: TBitmap;
procedure WMEraseBkgnd(var Message: TWMEraseBkgnd); message WM_ERASEBKGND;
........


procedure TxxxxForm.WMEraseBkgnd(var Message: TWMEraseBkgnd);
begin
StretchBlt(Message.DC, 0, 0, ClientWidth, ClientHeight, FBkgnd.Canvas.Handle,
0, 0, FBkgnd.Width, FBkgnd.Height, SRCCOPY);
Message.Result := 1;
end;
 
学习学习。
 
Another_eYes:
谢谢!,你说是给Form添加一个Bkgnd属性,那怎样继承TForm,做出新的TFrom控件!
另外,那么多图形格式都转化成BMP,有一个简单方法吗?
 
1. 你在Delphi中打开一个新Form就是在继承TForm呀, 直接在你Form相关的pas文件
里加上上面的代码就可以了.
2. .bmp, .jpg简单, Delphi有相关类支持(TBitmap和TJPegImage). Gif, Tiff, ico........就
复杂了, 需要用第三方的类或者你自己写.
转换最简单的就是用TBitmap.Assign了, 一般其他图象类(包括第三方的)都支持.
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
777
DelphiTeacher的专栏
D
D
回复
0
查看
633
DelphiTeacher的专栏
D
后退
顶部