手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>delphi>列表

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

来源:互联网 作者:西部数码 时间:2008-04-09
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

田志刚 (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;

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

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!