在Windows 9x中系統桌面和開始菜單可以說是它的一大特色,其實我們可以利用Delphi輕易地在應用程序中實現這種技術:
新建一個應用程序, 將Form1窗體的BorderStyle屬性設置為bsNone,FormStyle屬性設置為 fsStayOnTop,WindowState屬性設置為wsMaximized。
如有必要可在Form1窗體中放置一個Image控件Image1,為它的Picture屬性裝入一幅自己喜愛的圖像並將它的Align屬性設置為alClient,Stretch設置為True,使圖像拉伸占滿Form1的客戶區,作為系統背景。
然後,新建一個窗體Form2,將它的BorderStyle屬性設置為bsNone,FormStyle屬性設置為fsStayOnTop。
在Form2內放置一個SpeedButton控件SpeedButton1和一個PopupMenu控件PopupMenu1。
將SpeedButton1的Top屬性設為0,Left屬性設為0,Caption屬性設為 “在這裡”(也可隨你) ,還可設置Glyph屬性為它加上一個圖像。雙擊PopupMenu1控件,根據自己需要設置各個菜單項。
接下來為Form1的OnCreate事件添加如下代碼:
procedure TForm1.FormCreate(Sender: TObject);
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.hide;
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.Terminate;
end;
現在,您就可以運行這個程序看看您的勞動成果了。