Delphi程式設計:完全控制桌面的實現 (轉)

worldblog發表於2007-12-02
Delphi程式設計:完全控制桌面的實現 (轉)[@more@]
田志剛 (2000-10-19)
  在 9x中桌面和開始選單可以說是它的一大特色,其實我們可以利用輕易地在應用中實現這種技術 :

  新建一個應用程式, 將Form1窗體的BorderStyle屬性設定為bsNone,FormStyle屬性設定為 fsStayOnTop,WindowState屬性設定為wsMaximized。

  如有必要可在Form1窗體中放置一個ImageImage1,為它的Picture屬性裝入一幅自己喜愛的影像並將它的Align屬性設定為alClient,Stretch設定為True,使影像拉伸佔滿Form1的客戶區,作為系統背景。

  然後,新建一個窗體Form2,將它的BorderStyle屬性設定為bsNone,FormStyle屬性設定為fsStayOnTop。

  在Form2內放置一個Speeutton控制元件SpeedButton1和一個PopupMenu控制元件PopupMenu1。

  將SpeedButton1的Top屬性設為0,Left屬性設為0,Caption屬性設為 “在這裡”(也可隨你) ,還可設定Glyph屬性為它加上一個影像。雙擊PopupMenu1控制元件,根據自己需要設定各個選單項。

  接下來為Form1的OnCreate事件新增如下程式碼:

  procedure TForm1.FormCreate(Sender: T);

  var

   tep:integer;

  begin

  //用來遮蔽Ctrl+Alt+Del、Ctrl+Tab

  功能及螢幕保護程式的執行

   tep:=0;

   systemparametersinfo(spi_setfasttaskswitch,

   1,@tep,0);

   systemparametersinfo(spi_screensaverrunning,

   1,@tep,0);

  end;

  為Form1的OnMouseMove事件新增程式碼如下:

  procedure TForm1.FormMouseMove

  (Sender: TObject; Shift: TShiftState; X,Y: Integer);

  begin

  //當滑鼠移動到Form1的底部時顯示Form2(即開始選單) ,否則隱藏Form2

   if y〉form1.height-30 then

   begin

   form2.left:=form1.left;

   form2.top:=form1.height-30;

   form2.width:=form1.width;

   form2.height:=30;

   form2.show;

   end

   else

   form2.h;

  end;

  如果你按上面步驟新增了Image1控制元件,請在Form1的Image1的OnMouseMove事件編輯欄內選擇FormMouseMove。

  為Form2中的SpeedButton1的OnClick事件新增如下程式碼:

  procedure TForm2.SpeedButton1Click

  (Sender: TObject);

  begin

  //當單擊 SpeedButton1按鈕後彈出由PopupMenu1構成的“開始”選單項

   PopupMenu1.Popup(form2.left,form2.top);

  end;

  最後為“退出考勤系統”選單項的OnClick事件新增如下程式碼:

  procedure TForm2.a6Click(Sender: TObject);

  begin   //退出應用程式

   application.Tenate;

  end;

  現在,您就可以執行這個程式看看您的勞動成果了。

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

相關文章