概述
目前在許多學習軟件游戲光盤中經常會看到各種
圖形顯示技巧憑著圖形的移動交錯雨滴狀百頁窗積木堆疊等顯現方式使畫面變得更為生動活潑更 能吸引觀眾本文將探討如何在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;
[] [] []
From:http://tw.wingwit.com/Article/program/Delphi/201311/24999.html