国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

當前位置:雨林木風下載站 > 技術開發(fā)教程 > 詳細頁面

Delphi編程的圖形顯示技巧

Delphi編程的圖形顯示技巧

更新時間:2022-05-09 文章作者:未知 信息來源:網(wǎng)絡 閱讀次數(shù):

發(fā)軟件時經(jīng)常需要加入各種圖形的特效顯示效果,這樣可以使畫面變得更為生動活潑,增加軟件的趣味性,使軟件更加受歡迎。本文將探討如何在Delphi編程中實現(xiàn)移動、交錯、瀑布狀、百葉窗和積木堆疊等各種圖形特效顯示效果。

基本原理
在Delphi中,實現(xiàn)圖像的顯示是非常簡單的,我們只要在Form中定義一個TImage組件,設置其picture屬性,然后選擇任何有效的.ICO、.BMP、.EMF或.WMF文件,進行載入,所選文件就會顯示在TImage組件中。但這只是直接將圖形顯示在窗體中,毫無技巧可言。為了使圖形顯示具有特殊效果,我們可以按下列步驟實現(xiàn):

1.定義一個TImage組件,把要顯示的圖形先裝入到TImage組件中,作為圖形緩存;

2.創(chuàng)建一新的位圖對象,其尺寸跟TImage組件中的圖形一樣;

3.利用畫布(Canvas)的CopyRect功能(將一個畫布的矩形區(qū)域拷貝到另一個畫布的矩形區(qū)域),使用技巧,動態(tài)形成位圖文件內(nèi)容,然后在窗體中顯示位圖。

實現(xiàn)方法
首先在窗體上定義一個Image控件Image1,載入一幅圖像(注意將其AutoSize設為True,Visible設為False),再定義6個按鈕控件,分別設置Caption為“推拉”、“垂直交錯”、“水平交錯”、“瀑布”、“百葉窗”、“積木”,圖形特效的編程原理和按鈕的Click程序分別如下。

1.推拉效果

將要顯示的圖形由上、下、左、右方向拉進屏幕內(nèi)顯示,同時將屏幕上原來的舊圖覆蓋掉,此種效果可分為四種:上拉、下拉、左拉和右拉,但原理都差不多,筆者程序以上拉效果為例。

>原理:

首先將放在緩存中圖形的第一條水平線,搬移至要顯示的位圖的最后一條,接著再將緩存中圖形的前兩條水平線,按順序搬移至要顯示位圖的最后兩條水平線,然后搬移前三條、前四條……直到全部圖形數(shù)據(jù)搬完為止。在搬移的過程中即可看到顯示的位圖由下而上浮起,而達到上拉的效果。

>程序算法如下:

procedure TForm1.Button1Click(Sender: TObject);
var
newbmp: TBitmap;
i,bmpheight,bmpwidth:integer;
begin
newbmp:= TBitmap.Create;
newbmp.Width:=image1.Width;
newbmp.Height:=image1.Height;
bmpheight:=image1.Height;
bmpwidth:=image1.Width;
for i:=0 to bmpheight do
begin
newbmp.Canvas.CopyRect(Rect(0,bmpheight-i,bmpwidth,bmpheight),image1.Canvas,Rect(0,0,bmpwidth,i));
form1.Canvas.Draw(120,100,newbmp);
end;
newbmp.free;
end;


2.垂直交錯效果

>原理:

將要顯示的圖形分成兩部分,奇數(shù)條掃描線由上往下搬移,偶數(shù)條掃描線的部分則由下往上搬移,而且兩者同時進行。從屏幕上便可看到分別由上下兩端出現(xiàn)的較淡圖形向屏幕中央移動,直到完全清楚為止。

>程序算法如下:

procedure TForm1.Button4Click(Sender: TObject);
var
newbmp:TBitmap;
i,j,bmpheight,bmpwidth:integer;
begin
newbmp:= TBitmap.Create;
newbmp.Width:=image1.Width;
newbmp.Height:=image1.Height;
bmpheight:=image1.Height;
bmpwidth:=image1.Width;
i:=0;
while i<=bmpheight do
begin
j:=i;
while j >0 do
begin
newbmp.Canvas.CopyRect(Rect(0,j-1,bmpwidth,j),image1.Canvas,Rect(0,bmpheight-i+j-1,bmpwidth,bmpheight-i+j));
newbmp.Canvas.CopyRect(Rect(0,bmpheight-j,bmpwidth,bmpheight-j+1), image1.Canvas,Rect(0,i-j,bmpwidth,i-j+1));
j:=j-1;
end;
form1.Canvas.Draw(120,100,newbmp);
i:=i+1;
end;
newbmp.free;
end;


3.水平交錯效果

>原理:

同垂直交錯效果原理一樣,只是將分成兩組后的圖形分別由左右兩端移進屏幕。

>程序算法如下:

procedure TForm1.Button5Click(Sender: TObject);
var
newbmp:TBitmap;
i,j,bmpheight,bmpwidth:integer;
begin
newbmp:= TBitmap.Create;
newbmp.Width:=image1.Width;
newbmp.Height:=image1.Height;
bmpheight:=image1.Height;
bmpwidth:=image1.Width;
i:=0;
while i<=bmpwidth do
begin
j:=i;
while j>0 do
begin
newbmp.Canvas.CopyRect(Rect(j-1,0,j,bmpheight), image1.Canvas, Rect(bmpwidth-i+j-1,0,bmpwidth-i+j,bmpheight));
newbmp.Canvas.CopyRect(Rect(bmpwidth-j,0,bmpwidth-j+1,bmpheight), image1.Canvas, Rect(i-j,0,i-j+1,bmpheight));
j:=j-2;
end;
form1.Canvas.Draw(120,100,newbmp);
i:=i+2;
end;
newbmp.free;
end;


4.瀑布效果

>原理:

將緩存中圖形的最后一條掃描線,按順序搬移到可視位圖的第一條到最后一條掃描線,讓此條掃描線在屏幕上留下它的軌跡。接著再把緩存圖形的倒數(shù)第二條掃描線,依序搬移到可視位圖的第一條到倒數(shù)第二條掃描線。其余的掃描線依此類推。

>程序算法如下:

procedure TForm1.Button3Click(Sender: TObject);
var
newbmp:TBitmap;
i,j,bmpheight,bmpwidth:integer;
begin
newbmp:= TBitmap.Create;
newbmp.Width:=image1.Width;
newbmp.Height:=image1.Height;
bmpheight:=image1.Height;
bmpwidth:=image1.Width;
for i:=bmpheight downto 1 do
for j:=1 to i do
begin
newbmp.Canvas.CopyRect(Rect(0,j-1,bmpwidth,j),image1.Canvas, Rect(0,i-1,bmpwidth,i));
form1.Canvas.Draw(120,100,newbmp);
end;
newbmp.free;
end;


5.百葉窗效果

>原理:

將放在緩存中圖形的數(shù)據(jù)分成若干組,然后依次從第一組到最后一組搬移,第一次每組各搬移第一條掃描線到可視位圖的相應位置,第二次搬移第二條掃描線,接著搬移第三條、第四條掃描線。

>程序算法如下:

procedure TForm1.Button6Click(Sender: TObject);
var
newbmp:TBitmap;
i,j,bmpheight,bmpwidth:integer;
xgroup,xcount:integer;
begin
newbmp:= TBitmap.Create;
newbmp.Width:=image1.Width;
newbmp.Height:=image1.Height;
bmpheight:=image1.Height;
bmpwidth:=image1.Width;
xgroup:=16;
xcount:=bmpheight div xgroup;
for i:=0 to xcount do
for j:=0 to xgroup do
begin
newbmp.Canvas.CopyRect(Rect(0,xcountj+i-1,bmpwidth,xcountj+i), image1.Canvas, Rect(0,xcountj+i-1,bmpwidth,xcountj+i));
form1.Canvas.Draw(120,100,newbmp);
end;
newbmp.Free;
end;


6.積木效果

>原理:

是瀑布效果的一種變化,不同之處在于,積木效果每次搬移的是一塊圖形(組),而不只是一根掃描線。

>程序算法如下:

procedure TForm1.Button7Click(Sender: TObject);
var
newbmp:TBitmap;
i,j,bmpheight,bmpwidth:integer;
begin
newbmp:= TBitmap.Create;
newbmp.Width:=image1.Width;
newbmp.Height:=image1.Height;
bmpheight:=image1.Height;
bmpwidth:=image1.Width;
i:=bmpheight;
while i>0 do
begin
for j:=10 to i do
begin
newbmp.Canvas.CopyRect(Rect(0,j-10,bmpwidth,j), image1.Canvas, Rect(0,i-10,bmpwidth,i));
form1.Canvas.Draw(120,100,newbmp);
end;
i:=i-10;
end;
newbmp.free;
end;


上述圖形特效顯示效果在Windows 98、Delphi 4.0下運行通過。當然圖形效果還有許多,讀者只要明白其中原理,就可以很容易設計并演示其他效果。 

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

  • <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        亚洲精品一二三四区| 欧美一区二视频| 在线免费观看视频一区| 国产欧美一区二区精品秋霞影院| 国产一区二三区好的| 久久久久久久久久久黄色| 激情亚洲综合在线| 1区2区3区欧美| 欧美日韩精品福利| 蜜桃视频在线观看一区| 久久先锋影音av| 99国产精品久| 日韩成人一区二区三区在线观看| 精品国产污网站| 色综合久久中文综合久久牛| 亚洲午夜激情av| 国产亚洲一区二区三区四区| 91免费精品国自产拍在线不卡| 亚洲超碰精品一区二区| 久久网站最新地址| 欧洲一区在线观看| 国产一区二区三区四区在线观看| 国产精品久久夜| 精品国产一区二区在线观看| www.爱久久.com| 久久精工是国产品牌吗| 亚洲精品高清视频在线观看| 欧美成人性福生活免费看| 色域天天综合网| 国产成人无遮挡在线视频| 香蕉久久一区二区不卡无毒影院| 国产色产综合色产在线视频| 欧美日本一区二区三区| 91网页版在线| 国产成人综合在线观看| 免费成人av在线| 一卡二卡欧美日韩| 亚洲欧洲日产国码二区| 亚洲国产岛国毛片在线| 久久婷婷国产综合精品青草| 91精品一区二区三区久久久久久| 色拍拍在线精品视频8848| 国产精品一区二区男女羞羞无遮挡| 亚洲国产cao| 一区二区三区在线影院| 成人免费小视频| 国产精品久久综合| 国产精品久久免费看| 国产精品欧美一区喷水| 国产精品无圣光一区二区| 国产欧美精品一区| 欧美国产激情一区二区三区蜜月| 精品国产污污免费网站入口 | 日韩午夜激情电影| 欧美日韩国产高清一区二区三区| 欧美亚洲国产怡红院影院| 91色乱码一区二区三区| 色综合天天综合色综合av| a亚洲天堂av| 成人免费视频播放| 成人综合婷婷国产精品久久蜜臀| 国产露脸91国语对白| 国产资源精品在线观看| 国产成人免费视频精品含羞草妖精| 免费看欧美女人艹b| 精品一二线国产| 成人免费视频一区| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 国产盗摄一区二区| 成人国产在线观看| 色婷婷久久99综合精品jk白丝| 94色蜜桃网一区二区三区| 91网页版在线| 777奇米四色成人影色区| 欧美精品一区男女天堂| 最好看的中文字幕久久| 亚洲成av人片在线| 国产一区二区在线观看视频| 国产99久久久国产精品潘金| 91在线视频播放地址| 在线看不卡av| wwwwww.欧美系列| 中文字幕第一区综合| 亚洲精品国产一区二区精华液 | 成人午夜又粗又硬又大| 91免费观看在线| 日韩精品一区二区三区在线| 中文字幕av资源一区| 日韩精品电影在线| 懂色中文一区二区在线播放| 欧美精品xxxxbbbb| 国产精品欧美一区喷水| 日本va欧美va精品发布| 99国产精品99久久久久久| 7777精品伊人久久久大香线蕉完整版 | 久久久电影一区二区三区| 综合久久一区二区三区| 麻豆视频一区二区| www.成人网.com| 日韩午夜电影av| 一区二区久久久久久| 国产激情视频一区二区在线观看 | 国产高清不卡一区| 日韩一区二区免费在线观看| 中文字幕一区免费在线观看| 久久国产精品第一页| 欧美日韩一区不卡| 中文字幕一区二区不卡| 国产精品亚洲第一| 日韩三级视频在线看| 亚洲午夜精品一区二区三区他趣| 丰满放荡岳乱妇91ww| 2024国产精品| 美国十次了思思久久精品导航| 91精品办公室少妇高潮对白| 中文字幕av一区二区三区| 激情五月婷婷综合网| 欧美一区二区久久| 婷婷久久综合九色综合伊人色| 色婷婷亚洲精品| 亚洲男同1069视频| 欧洲av一区二区嗯嗯嗯啊| 中文字幕一区二区在线播放| 狠狠色丁香婷婷综合久久片| 欧美电影免费观看完整版| 五月婷婷另类国产| 欧美精品在线一区二区三区| 亚洲成人7777| 在线不卡中文字幕| 日本少妇一区二区| 欧美顶级少妇做爰| 六月丁香婷婷色狠狠久久| 欧美日韩亚洲综合在线| 一级精品视频在线观看宜春院| 91看片淫黄大片一级| 中文字幕综合网| 欧洲av在线精品| 日本亚洲欧美天堂免费| 欧美va在线播放| 国产激情一区二区三区桃花岛亚洲| 亚洲精品一线二线三线| 国产一区二区日韩精品| 国产三级一区二区| 91在线免费看| 亚洲一区二区精品3399| 欧美精品免费视频| 精品无码三级在线观看视频| 国产色产综合产在线视频| 成人免费视频一区| 一区二区三区精品在线| 9191国产精品| 国产.欧美.日韩| 一区二区三区四区亚洲| 欧美一区二区视频免费观看| 日韩电影在线免费| 国产精品美女久久久久久久久久久| 色综合天天综合狠狠| 日韩一区精品字幕| 久久精品欧美日韩精品| 91色视频在线| 久久爱www久久做| 亚洲欧美日韩小说| 精品免费国产一区二区三区四区| caoporn国产精品| 美女久久久精品| 亚洲激情校园春色| 精品国产三级电影在线观看| www.日本不卡| 另类中文字幕网| 亚洲精品视频在线观看网站| 欧美xxx久久| 欧美丝袜丝nylons| 国产成人精品一区二| 亚洲国产精品麻豆| 中文无字幕一区二区三区 | 日韩高清电影一区| 国产精品色一区二区三区| 欧美精品xxxxbbbb| 91国偷自产一区二区开放时间| 精品亚洲国产成人av制服丝袜 | 中文字幕一区二区三区在线观看| 欧美丝袜丝交足nylons| 懂色av一区二区三区免费观看| 日韩激情中文字幕| 亚洲综合清纯丝袜自拍| 国产精品久久影院| 国产午夜精品久久久久久久| 制服丝袜亚洲播放| 欧美日韩免费一区二区三区 | 国内精品视频666| 亚洲一区二区三区免费视频| 欧美韩日一区二区三区| 这里只有精品电影| 欧美日韩中文国产| 欧美色视频在线观看| 色综合久久久久综合体桃花网| 成人黄色777网| 成人激情黄色小说| www.爱久久.com| 91丨porny丨在线|