用Delphi編寫塗鴉桌面的小程式 (轉)

worldblog發表於2007-12-13
用Delphi編寫塗鴉桌面的小程式 (轉)[@more@]

有很多的關於塗鴉桌面的小,確實很好玩,現在來用實現之。我建議使用Delphi,因為他做這個簡直太

Easy了!

首先,新建一個Application,將Form1的tate設為wsMaximized,BorderStyle設為bsNone。這樣做的目的就是

可以使視窗的Client區域充滿整個螢幕,那麼我們就可以在上面隨意的畫畫了。

接下來,在Form的OnCreate事件中寫入使視窗的客戶區域顯示螢幕畫面的程式碼(關鍵步驟)

procedure TForm1.FormCreate(Sender: T);
begin
Brush.Style :=bsClear;//這裡的實現方法用Delphi是最簡單的了
end;

好了,以後加入畫圖的就可以了。下面是全部的Delphi程式碼,本程式在 + Delphi6中透過!


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
  procedure FormCreate(Sender: TObject);
  procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
  procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
  procedure FormMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
  procedure FormKeyDown(Sender: TObject; var Key: ;
  Shift: TShiftState);
  private
  { Private declarations }
  public
  { Public declarations }
  end;

var
  Form1: TForm1;
implementation

{$R *.dfm}
//上面都是Delphi自動生成的程式碼
procedure TForm1.FormCreate(Sender: TObject);
begin
Brush.Style :=bsClear;
Tag:=0;  //使用Form的Tag屬性作標誌位
end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
Tag:=1; //置位
Canvas.MoveTo(X,Y); //將Pen的位置移到當前
//取隨機數
Ranize;
Canvas.Pen.Width := Random(30);//設定畫筆的寬度
Canvas.Pen.Color :=RGB(Random(255),Random(255),Random(255));//設定畫筆的顏色
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
if Tag=1 then
begin
  Canvas.Lo(x,y);//畫線
end;
end;

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
Tag:=0; //標誌位
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key=27 then Close();//判斷如果按下ESC鍵就退出程式
end;

end.


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-992718/,如需轉載,請註明出處,否則將追究法律責任。

相關文章