捐赠 | 广告 | 注册 | 发布 | 上传 | 关于我们    
  粤ICP备10103342号-1 DELPHI盒子 | 盒子文章 | 盒子问答悬赏 | 最新更新 | 盒子检索 | 下载中心 | 高级搜索    
  精品专区 | 繁體中文 | 奖励公告栏 | 直通车账号登陆 | 关闭GOOGLE广告 | 临时留言    
盒子资源分类
全部展开 - 全部合拢
解决 MIDForm 背景绘图的非常简单的方法
关键字:MIDForm Canvas 背景 绘图 背绘图
来 自:原创
平 台:Win9x,Win2k/XP/NT,Win2003 下载所需:0 火柴
深浅度:初级 完成时间:2006/6/28
发布者:corbie8205 发布时间:2006/6/28
编辑器:DELPHI7 语  种:简体中文
分 类:绘图 下载浏览:2/11897
加入到我的收藏
下载错误报错
登陆以后才能下载
 用户名:
 密 码:
自动登陆(30天有效)
无图片
看到很多朋友在找如何在 MDI 或者普通 Form 绘制背景图象的方法,我就写了一个绘图函数,可以方便的解决这个问题,大家可以参考并举一反三,改进的更好。

当然里面只是使用了 Form 的 Canvas 来绘图,如果使用 BitBlt 可能更快,但是在这里应该察觉不出来,大家可以尝试使用 BitBlt 和 StretchBlt 来改写。

TDrawMode 用来控制绘图的方法:
dwCenter, 居中绘图
dwStretch, 拉伸绘图
dwTile, 平铺绘图

使用的时候只要把下面的函数声明写入单元,或是把下面的代码保存成单元,直接引用都可以。

然后声明一个位图变量,在 OnCreate 里面写:
var
  MyBitmap: TBitmap;
begin
  MyBitmap := TBitmap.Create;
  MyBitmap.LoadFromFile('此处写入要绘制的背景图象');
  { 背景图要位图格式,其他的格式大家可以通过变量转换,也很简单。 }
end;

在 OnPaint 里面写:

begin
  DrawFormImage(Self, MyBitmap, dwTile);
  { 这个函数的第三个参数可以不写,默认为dwCenter } 
end;

在 OnDestory 里面写:
begin
  MyBitmap.Free;
  { 这里释放用过的位图变量 }
end;

下面是完全的单元代码:

unit BackImage;

interface

uses
  Forms, Graphics;

type
  TDrawMode = (dwCenter, dwStretch, dwTile);

procedure DrawFormImage(Form: TForm; Bitmap: TBitmap; DrawMode: TDrawMode = dwCenter);

implementation

procedure DrawFormImage(Form: TForm; Bitmap: TBitmap; DrawMode: TDrawMode = dwCenter);
var
  X, Y: Integer;
begin
  case DrawMode of
    dwCenter:
      begin
        X := (Form.ClientWidth - Bitmap.Width) div 2;
        Y := (Form.ClientHeight - Bitmap.Height) div 2;
        Form.Canvas.Draw(X, Y, Bitmap);
      end;
    dwStretch:
      begin
        Form.Canvas.StretchDraw(Form.ClientRect, Bitmap);
      end;
    dwTile:
      begin
        Form.Canvas.Brush.Bitmap := Bitmap;
        Form.Canvas.FillRect(Form.ClientRect);
      end;
  end;
end;

end.
Google
 
本站原创作品,未经作者许可,严禁任何方式转载;转载作品,如果侵犯了您的权益,请联系我们
龙脉加密锁 15元起 Grid++Report 报表 申请支付@网
 相关文章
没有相关文章
相关评论
共有评论5条
我要发表评论 查看全部评论
 
  DELPHI盒子版权所有 技术支持:深圳市麟瑞科技有限公司 1999-2024 V4.01 粤ICP备10103342号-1 更新RSS列表