所謂百葉窗效果,就是將畫布分成若干個區域,各區域以漸進方式同時復制圖形,就象翻動的百葉窗一樣.以下就是一個顯示特效的過程實例:首先,新建一個工程,在窗體上添加兩個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的實例)。