概述
目前在许多学习软件游戏光盘中经常会看到各种
图形显示技巧凭着图形的移动交错雨滴状百页窗积木堆叠等显现方式使画面变得更为生动活泼更 能吸引观众本文将探讨如何在Delphi中实现各种图形显示技巧
基本原理
在Delphi中实现一副图象的显示是非常简单的只要在Form中定义一个TImage组件设置其picture属性然后选 择任何有效的ICOBMPEMF或WMF文件进行Load所选文 件就显示在TImage组件中了但这只是直接将图形显示在窗体中毫无技巧可言为了使图形显示具有别具一格的效果可以按下列步骤实现
定义一个TImage组件把要显示的图形先装入到TImage组件中也就是说把图形内容从磁盘载入内存中 做为图形缓存
创建一新的位图对象其尺寸跟TImage组件中的图形一样
利用画布(Canvas)的CopyRect功能(将一个画布的矩形区域拷贝到另一个画布的矩形区域)使用技巧动态形成位图文件内容然后在窗体中显示位图
实现方法
下面介绍各种图形显示技巧
推拉效果
将要显示的图形由上下左右方向拉进屏幕内显示同时将屏幕上原来的旧图盖掉此种效果可分为四
种上拉下拉左拉右拉但原理都差不多以上拉 效果为例
原理首先将放在暂存图形的第一条水平线搬移至要显示的位图的最后一条接着再将暂存图形的前两条水平线依序搬移至要显示位图的最后两条水平线然后搬移前三条前四条叄?直到全部图形数据搬完为止在搬移的过程中即可看到显示的位图由下而上浮起而达到上拉的效果
程序算法
procedure TFormButtonClick(Sender: TObject);
var
newbmp: TBitmap;
ibmpheightbmpwidth:integer;
begin
newbmp:= TBitmapCreate;
newbmpWidth:=imageWidth;
newbmpHeight:=imageHeight;
bmpheight:=imageHeight;
bmpwidth:=imageWidth;
for i:= to bmpheight do
begin
newbmpCanvasCopyRect(Rect
(bmpheightibmpwidthbmpheight)
imageCanvas
Rect(bmpwidthi));
formCanvasDraw(newbmp);
end;
newbmpfree;
end;
[] [] []