在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

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

Delphi編程的圖形顯示技巧

Delphi編程的圖形顯示技巧

更新時間:2022-05-09 文章作者:未知 信息來源:網絡 閱讀次數:

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

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

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

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

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

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

1.推拉效果

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

>原理:

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

>程序算法如下:

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.垂直交錯效果

>原理:

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

>程序算法如下:

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.瀑布效果

>原理:

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

>程序算法如下:

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.百葉窗效果

>原理:

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

>程序算法如下:

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下運行通過。當然圖形效果還有許多,讀者只要明白其中原理,就可以很容易設計并演示其他效果。 

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

本類教程下載

系統下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 青青草免费在线视频观看| 国产午夜福利视频在线观看| 天天天干夜夜夜操| 浮妇高潮喷白浆视频| 成人免费网站入口| 91丨porny丨探花| 激情伊人五月天| av动漫在线播放| 97免费视频观看| 激情综合在线观看| 欧美精品99久久| 动漫av网站免费观看| 久久成人免费观看| 天天爱天天操天天干| 午夜国产一区二区三区| 亚洲美女性囗交| 伊人久久在线观看| 男人添女人下部视频免费| 免费日韩在线观看| 妺妺窝人体色www在线小说| 成人在线看视频| 欧美日韩理论片| 欧美精品久久久久久久免费| 男人用嘴添女人下身免费视频| 欧美爱爱视频免费看| 在线免费视频一区| 米仓穗香在线观看| 日本免费黄视频| 亚洲高清av一区二区三区| aaa免费在线观看| 日本毛片在线免费观看| 亚洲高清免费在线观看| 警花观音坐莲激情销魂小说| www插插插无码免费视频网站| 国产中文字幕视频在线观看| 成人亚洲精品777777大片| 99999精品| 日本在线观看a| 午夜在线视频免费观看| 一女被多男玩喷潮视频| 三级黄色片播放| 久草在在线视频| 欧美中文字幕在线观看视频| 手机看片福利盒子久久| 国产av熟女一区二区三区| 国产色视频在线播放| 日韩网站在线免费观看| 波多野结衣网页| 人人干人人视频| 国产素人在线观看| 亚洲高清视频免费| 在线视频日韩一区| 激情六月丁香婷婷| 国产一级爱c视频| 超碰97免费观看| 天堂av2020| 性欧美1819| 污视频免费在线观看网站| 人妻激情另类乱人伦人妻 | 999精彩视频| 四虎永久在线精品无码视频| 国产在线播放观看| 亚洲黄色网址在线观看| 天天做天天干天天操| 国产三级国产精品国产专区50| 亚洲中文字幕无码专区| 国产美女主播在线| 欧美中日韩在线| av免费观看国产| 男人日女人bb视频| 久在线观看视频| 国产中文字幕视频在线观看| xxxx18hd亚洲hd捆绑| 91免费黄视频| 欧美 国产 日本| 黄色一级二级三级| www.精品在线| 在线免费黄色小视频| 色偷偷中文字幕| 青少年xxxxx性开放hg| 国产成人免费高清视频| 女同性恋一区二区| 国产一区二区三区乱码| 国产原创中文在线观看| 久久精品网站视频| 免费黄频在线观看| 国产玉足脚交久久欧美| 日本中文字幕片| 日本中文字幕观看| 色撸撸在线观看| 99999精品视频| 九九九九九国产| 日韩精品视频在线观看视频| 久久久久久久久久久福利| 国产三级三级看三级| 欧美精品一区二区性色a+v| 福利视频一区二区三区四区| www黄色av| 特级毛片在线免费观看| 久久久亚洲精品无码| 三上悠亚av一区二区三区| 日韩人妻一区二区三区蜜桃视频| 青青草原成人网| 无套内谢丰满少妇中文字幕| 国产a级片网站| 国产探花在线看| 成人av一级片| www.欧美黄色| 久久久久久综合网| www国产精品内射老熟女| 在线免费看v片| 亚洲色精品三区二区一区| 久久久久久久久网| 色片在线免费观看| 免费成人在线视频网站| 久久av喷吹av高潮av| 日本久久精品一区二区| 波多野结衣之无限发射| 精品无码av无码免费专区| 亚洲精品一二三四五区| 欧美精品久久久久久久免费| ijzzijzzij亚洲大全| 一级黄色片国产| 黄大色黄女片18第一次| 性欧美极品xxxx欧美一区二区| 一区二区传媒有限公司| 日本阿v视频在线观看| 国产又粗又长又爽视频| 影音先锋男人的网站| 中文字幕 欧美日韩| 中文字幕 日韩 欧美| 簧片在线免费看| 老司机午夜性大片| 欧美成人乱码一二三四区免费| 一级特黄性色生活片| 无限资源日本好片| 午夜免费福利视频在线观看| 日韩欧美国产片| 亚洲精品第三页| 男女污污视频网站| 男女视频在线观看网站| 黄色片免费网址| 奇米777四色影视在线看| 久久久久久久久影视| 成年在线观看视频| 欧美视频在线观看视频| 99热自拍偷拍| 超碰影院在线观看| 91热视频在线观看| 黄色小视频大全| 日本久久久精品视频| 欧美大尺度做爰床戏| 91日韩精品视频| cao在线观看| 亚洲午夜无码av毛片久久| 特级丰满少妇一级| 久久久久久久免费视频| 国产精品视频一二三四区| 水蜜桃色314在线观看| 午夜免费一区二区| 日本一级淫片演员| 黄色av网址在线播放| 另类小说色综合| 野外做受又硬又粗又大视频√| 国产老熟妇精品观看| 911福利视频| 欧美精品一区免费| 亚洲综合激情视频| 午夜免费福利小电影| 91制片厂毛片| 99视频在线免费播放| 爱豆国产剧免费观看大全剧苏畅 | 精品国产免费av| 亚洲国产精品影视| 苍井空浴缸大战猛男120分钟| 伊人色在线观看| 国产麻花豆剧传媒精品mv在线| 免费看av软件| 色悠悠久久综合网| 亚洲熟妇av日韩熟妇在线| 亚洲妇熟xx妇色黄蜜桃| 免费黄色福利视频| 欧美一级片免费播放| 午夜免费福利网站| 蜜臀视频一区二区三区| 男女超爽视频免费播放| 91网站在线观看免费| 免费av不卡在线| 日韩中文字幕a| 99视频在线免费| 国产一区二区三区精彩视频| 男人添女人下部视频免费| 91 视频免费观看| 小早川怜子一区二区三区| 中文字幕在线观看第三页| 国产va亚洲va在线va| 日本道在线视频| 日韩欧美猛交xxxxx无码| 欧美爱爱视频网站| 深爱五月综合网|