Delphi编程:完全控制桌面的实现

王朝delphi·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

田志刚(2000-10-19)

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

现在,您就可以运行这个程序看看您的劳动成果了。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航