在windows 中系統桌面和開始菜單可以說是它的一大特色,其實我們可以利用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;
現在,您就可以運行這個程序看看您的勞動成果了。