計算機畢業論文:Delphi中畫布應用兩則

時間:2022-10-08 04:03:00

導語:計算機畢業論文:Delphi中畫布應用兩則一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。

計算機畢業論文:Delphi中畫布應用兩則

關鍵字:delphi畫布、背景色、分割圖像

----在Delphi中,窗體(Form)、BitBtn控件、SpeedButton控件和PaintBox等控件都具有畫布(Canvas)屬性。調用Canvas的作圖函數可以在屏幕上畫圖,如畫圓、畫線等。另外,Canvas有一個屬性叫Pixels,Pixels是一個二維數組,它的一個元素對應著屏幕上的一個像素點,數組元素的值代表像素點的顏色。利用Canvas的屬性Pixels可以實現一些有趣的功能,下面介紹它的兩則應用

----1.制作背景色

----我們在一些軟件的安裝界面可以看到由深到淺(或由淺到深)的背景色,看起來效果相當不錯。在Delphi中利用Canvas的屬性Pixels可以制作這樣的背景色,只要按行或按列改變像素點的顏色就可以了。一個示例程序的編制過程如下:

----(1)建立一個新的應用程序。

----(2)把Form1的屬性BorderStyle改為bsNone,在Form1的OnDblClick事件中,鍵入代碼后如下所示:

procedureTForm1.FormDblClick(Sender:TObject);

varMyColor:Longint;

x,y:Word;

begin

MyColor:=$33;{顏色基數}

withCanvasdo

begin

{當x坐標在外循環,y坐標在內

循環時,顏色按列逐漸變化;反之則按行變化}

forx:=0toWidthdo

begin

ifxmod4=0then{每隔4列變化一次顏色}

begin

MyColor:=MyColor+1;{顏色增量為1}

end;

fory:=0toHeightdo

begin

Pixels[x,y]:=RGB(0,0,MyColor);

{用API函數宏RGB合成顏色}

end;

end;

end;

end;

----(3)運行程序,在窗體中雙擊鼠標左鍵,觀看運行結果。

----(4)按Alt+F4鍵,結束運行。

----以上程序在24位色、800*600的分辨率下調試通過。

----2.分割圖像

----有時候我們需要把一個圖像分割成幾部分。比如做一個拼版游戲時,就需要把圖像分割成16塊。利用Canvas的屬性Pixels可以實現這一功能。下面的例子演示了如何把Image控件中的圖像分成左右兩部分并把它們復制到窗體的畫布上。本示例程序的制作步驟如下:

----(1)建立一個新的應用程序。

----(2)在窗體中加入一個Image控件,名字為Image1。把屬性Picture設置為Delphi目錄下的Image\Buttons\Abort.bmp。

----(3)在類TForm1的private部分,加入語句:

procedureDivideCanvas(formBegX,

ImageBaseX,HalfImageWidth:Integer);

在單元的implementation部分加

上過程DivideCanvas的實現。

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);

{復制圖像的左半部分}

DivideCanvas(HalfImageWidth+50,

HalfImageWidth,HalfImageWidth);

{復制圖像的右半部分}

end;

----(5)運行程序進行測試。

----以上兩個演示程序在Delphi6.0和Delphi7.0中均調試通過。