所謂百葉窗效果,就是將畫布分成若干個區域,各區域以
漸進方式同時複製圖形,就像翻動的百葉窗一樣.以下就是一
個顯示特效的流程實例:
首先,新建一個工程,在窗體上新增兩個IMAGE控件,在控件
IMAGE1的PICTURE屬性中導入一幅點陣圖(*.bmp),並將IMAGE1
的VISIBLE屬性設為FALSE。
然後,在程式碼視窗中定義如下過程:
PRocedure TForm1.fan;
var r1:Trect;
list,r,every:integer;
begin
list:=1;
every:=trunc(screen.Height/10)+1;
While list<=every do
begin
for r:=0 to 10 do begin
r1:=rect(0,r*every,screen.Width,R*every+list);
image2.Canvas.CopyRect(r1,image1.Canvas,r1);
end;
update;
Inc(list);
end;
end;
以後就可以在程式中需要的地方呼叫了。
下面就讓我們來看看這是如何實現的,程式碼中RECT(X1,Y1,X2,Y2)
表示選定的矩形範圍,(X1,Y1)是矩形左上角座標,(X2,Y2)是矩形
右下角座標。圖形顯示由COPYRECT(R1,CANVAS,R2)完成,其中R1是
目標區域,R2是被複製區域,CANVAS是被複製物件(它也可以是一個
TBITMAP的實例)。