<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • Delphi中畫布應(yīng)用

    • 相關(guān)推薦

    Delphi中畫布應(yīng)用兩則

    關(guān)鍵字:Delphi、畫布、背景色、分割圖像
    ---- 在Delphi 中, 窗 體(Form)、BitBtn 控 件、SpeedButton 控件和PaintBox等控件都具有畫布(Canvas)屬性。調(diào)用Canvas的作圖函數(shù)可以在屏幕上畫圖,如畫圓、畫線等。另外,Canvas有一個(gè)屬性叫Pixels,Pixels是一個(gè)二維數(shù)組,它的一個(gè)元素對應(yīng)著屏幕上的一個(gè)像素點(diǎn),數(shù)組元素的值代表像素點(diǎn)的顏色。利用Canvas的屬性Pixels可以實(shí)現(xiàn)一些有趣的功能,下面介紹它的兩則應(yīng)用。
    ----1.制作背景色
    ----我們在一些軟件的安裝界面可以看到由深到淺(或由淺到深)的背景色,看起來效果相當(dāng)不錯(cuò)。在Delphi中利用Canvas的屬性Pixels可以制作這樣的背景色,只要按行或按列改變像素點(diǎn)的顏色就可以了。一個(gè)示例程序的編制過程如下:
    ----(1)建立一個(gè)新的應(yīng)用程序。
    ----(2)把Form1的屬性BorderStyle改為bsNone,在Form1的OnDblClick事件中,鍵入代碼后如下所示:

    procedureTForm1.FormDblClick(Sender:TObject);
    varMyColor:Longint;
    x,y:Word;
    begin
    MyColor:=$33;{顏色基數(shù)}
    withCanvasdo
    begin
    {當(dāng)x坐標(biāo)在外循環(huán),y坐標(biāo)在內(nèi)
    循環(huán)時(shí),顏色按列逐漸變化;反之則按行變化}
    forx:=0toWidthdo
    begin
    ifxmod4=0then{每隔4列變化一次顏色}
    begin
    MyColor:=MyColor 1;{顏色增量為1}
    end;
    fory:=0toHeightdo
    begin
    Pixels[x,y]:=RGB(0,0,MyColor);
    {用API函數(shù)宏RGB合成顏色}
    end;
    end;
    end;
    end;
    ----(3)運(yùn)行程序,在窗體中雙擊鼠標(biāo)左鍵,觀看運(yùn)行結(jié)果。
    ----(4)按Alt F4鍵,結(jié)束運(yùn)行。
    ----以上程序在24位色、800*600的分辨率下調(diào)試通過。
    ----2.分割圖像
    ----有時(shí)候我們需要把一個(gè)圖像分割成幾部分。比如做一個(gè)拼版游戲時(shí),就需要把圖像分割成16塊。利用Canvas的屬性Pixels可以實(shí)現(xiàn)這一功能。下面的例子演示了如何把Image控件中的圖像分成左右兩部分并把它們復(fù)制到窗體的畫布上。本示例程序的制作步驟如下:
    ----(1)建立一個(gè)新的應(yīng)用程序。
    ----(2)在窗體中加入一個(gè)Image控件,名字為Image1。把屬性Picture設(shè)置為Delphi目錄下的ImageButtonsAbort.bmp。
    ----(3)在類TForm1的private部分,加入語句:

    procedureDivideCanvas(formBegX,
    ImageBaseX,HalfImageWidth:Integer);
    在單元的implementation部分加
    上過程DivideCanvas的實(shí)現(xiàn)。
    procedure
    TForm1.DivideCanvas(formBegX,
    ImageBaseX,HalfImageWidth:Integer);
    varx,y:integer;
    begin
    forx:=0toHalfImageWidth-1do
    begin
    fory:=0toImage1.Height-1do
    begin
    Canvas.Pixels[formBegX x,y]:=
    Image1.Canvas.Pixels[ImageBaseX x,y];
    end;
    end;
    end;

    ----(4)在Form1的OnPaint事件中,加入代碼后如下所示:

    procedureTForm1.FormPaint(Sender:TObject);
    varHalfImageWidth:integer;
    begin
    HalfImageWidth:=Image1.Widthdiv2;
    DivideCanvas(0,0,HalfImageWidth);
    {復(fù)制圖像的左半部分}
    DivideCanvas(HalfImageWidth 50,
    HalfImageWidth,HalfImageWidth);
    {復(fù)制圖像的右半部分}
    end;
    ----(5)運(yùn)行程序進(jìn)行測試。
    ----以上兩個(gè)演示程序在Delphi6.0和Delphi7.0中均調(diào)試通過。論文出處(作者):
    VBA在限定Excel工作表用戶按鈕中的應(yīng)用
    淺析規(guī)劃管理信息整合與服務(wù)——以南昌市規(guī)劃管理信息系

    【Delphi中畫布應(yīng)用】相關(guān)文章:

    在Delphi中巧用Windows 的API函數(shù)03-20

    Delphi 5 數(shù)據(jù)庫應(yīng)用中ODBC數(shù)據(jù)源的自動(dòng)管理03-18

    利用Delphi開發(fā)網(wǎng)絡(luò)數(shù)據(jù)庫應(yīng)用03-03

    基于Delphi的試卷智能生成系統(tǒng)設(shè)計(jì)Delphi+SQL11-23

    delphi題庫系統(tǒng)(一)03-07

    文件自動(dòng)分類系統(tǒng)Delphi03-08

    紅外遙控在汽車中的應(yīng)用03-19

    淺析力學(xué)在機(jī)械中的應(yīng)用05-19

    竹子在設(shè)計(jì)中的應(yīng)用價(jià)值12-02

    RPMS在煉化企業(yè)中的應(yīng)用12-09

    主站蜘蛛池模板: 亚洲国产精品免费视频| 国产乱子伦精品免费视频| 四虎永久在线精品国产免费| 亚洲?V无码成人精品区日韩| 亚洲国产精品线在线观看| 久久99精品国产麻豆| 国内精品久久久久久不卡影院| 国产精品扒开腿做爽爽爽视频| 最新国产精品无码| 久久精品国产亚洲精品| 91亚洲精品自在在线观看| 99久久99这里只有免费的精品| 亚洲精品国产字幕久久不卡| 欧美精品人人做人人爱视频| 国产精品片在线观看手机版| 青青草国产精品久久| 国产精品无套内射迪丽热巴| 亚洲精品国产美女久久久| 久久亚洲av无码精品浪潮| 国产精品亚洲mnbav网站| 亚洲国产精品国自产拍电影| 999精品在线| 久久永久免费人妻精品下载| 亚洲精品字幕在线观看| 欧洲精品码一区二区三区免费看| 国产午夜精品久久久久九九| 国产精品无码一区二区在线观一| 免费欧美精品a在线| 精品久久久久久国产| 1000部精品久久久久久久久| 精品视频无码一区二区三区| 色一乱一伦一图一区二区精品| 亚洲欧美精品一区久久中文字幕| 日韩一区二区精品观看| 四虎精品免费永久免费视频| 男女男精品网站免费观看| 久久亚洲中文字幕精品一区四| 久久精品二区| 无翼乌无遮挡全彩老师挤奶爱爱帝国综合社区精品 | 国产精品一二区| 国产精品亚洲а∨无码播放|