首页 新闻 搜索 短信 分类 聊天 企业
上移动梦网
赢手机大奖

新浪首页 > 科技时代 > 网上学园 > 开 发 者 > 正文
Delphi编程实例:桌面小精灵

http://www.sina.com.cn 2002/05/15 13:55 赛迪网--中国电脑教育报

  在网上行走时,经常会看到弹出的桌面小窗体,有时做广告,有时向你致以节日的问候;人们称其为桌面小精灵;有的桌面小精灵会自动移动,有的固定在屏幕的某一角落,动画闪烁,煞是迷人。本人用Delphi制作了一款桌面小精灵,愿与大家共享。

  桌面小精灵的实现功能:当运行时,在屏幕的左下角显示一无边框、无标题栏的小窗体,并自动向屏幕的右上角移动,窗体上的小精灵——可爱的马先生,一会跃起,高呼“马
到成功!”,一会含情脉脉地向你招手“再见”;同时,还不断地闪烁显示当前时间,时刻提醒你抓紧时间呦!当你嫌它碍事时,你可以按下鼠标左键,将它拖到任意位置。如果你厌烦它不停移动,你可以双击鼠标左键,它会老老实实地呆在原地不动,只要你用鼠标轻轻一点,它又会高高兴兴地上路,当你单击“再见”时,桌面小精灵就会消失,你不想一试身手吗?请跟我来!


运行前效果图


运行后效果图

  生成一窗体,设置窗体属性如下:Name属性为Form1,BorderStyle属性为bsNone,FormStyle属性为StyOnTop,Height属性值240,Width属性值209。

   窗体上分别添加组件,设置属性如下:

  (1)添加两个Image组件,Name属性分别设为Image1、Image2,Align属性均设为alClient (以使Image组件充满整个窗体),Image1的Enabled为False,Image2的Enabled为True,然后通过Picture属性为Image1、Image2添加图片(适合的图片格式:BMP、JPG )。

  (2)在Image上再添加两个Timer组件,Name属性分别为Timer1、Timer2,Enabled属性均为True,Interval属性均为1000毫秒。

  (3)在Image上再添加一个Label组件,Name:=Label1,Caption:=“马到成功!”,Enabled:=True,Font属性为“华文行楷,粗斜体,三号字,红色”(根据你的图片设置适当的字体、字号、字体颜色)。

  (4)在Image上再添加一个Panel组件,设置属性:Name:=Panel1。

  Caption:=时间;Color:=clBlue ; Font设为:华文彩云、三号、黄色。

  添加源代码如下:

  //用Timer1控制两图片、标签及时间的显示

  procedure TForm1.Timer1Timer(Sender: TObject);

  begin

  if (form1.Image1.Visible =true) then

   begin

   Image1.Visible :=false ;

   Image2.Visible :=true ;

   Label1.Visible :=false;

   panel1.Caption :='再见!';

   end

   else

   begin

   Image1.Visible :=true;

   Image2.Visible :=false;

   Label1.visible:=true;

   panel1.caption :=timetostr(time());

   end;

  end;

  //用Timer2控制窗体的移动

  procedure TForm1.Timer2Timer(Sender: TObject);

  begin

  if form1.Left>=750 then

   begin

   form1.Top :=350;

   form1.Left:=0;

   end

  else

   form1.Left:=form1.Left+5;

   form1.Top :=form1.Top -3;

  end;

  procedure TForm1.Panel1Click(Sender: TObject);

  begin

  close;

  end;

  //实现用鼠标点住窗体的任意位置,拖动窗体

  procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;

   Shift: TShiftState; X, Y: Integer);

  begin

  ReleaseCapture;

  Perform(WM_SYSCOMMAND,,0)

  end;

  //设置窗体的初始化位置

  procedure TForm1.FormCreate(Sender: TObject);

  begin

  left:=0;

  top:=350;

  end;

  //单击Image1、Image2时,Timer2重新开始工作,实现窗体的再移动

  procedure TForm1.Image1Click(Sender: TObject);

  begin

  timer2.Enabled :=true;

  end;

  procedure TForm1.Image2Click(Sender: TObject);

  begin

  timer2.Enabled :=true;

  end;

  //双击Image1、Image2时,Timer2停止工作,实现窗体的固定不动效果

  procedure TForm1.Image1DblClick(Sender: TObject);

  begin

  timer2.Enabled :=false;

  end;

  procedure TForm1.Image2DblClick(Sender: TObject);

  begin

  timer2.Enabled :=false;

  end;

  end.


  


发表评论】【初学者园地】【科技聊天】【关闭窗口

新 闻 查 询

 相关链接
用Delphi 5.0编写在线播放器 (2002/02/04 12:38)
Delphi编程使用经验四则 (2001/12/18 17:02)
Delphi程序的时限和加密方法 (2001/12/17 14:31)
Delphi应用编程答疑解惑 (2001/11/02 16:14)
用Delphi再现Windows纸牌游戏 (2001/10/30 10:56)
Delphi发布Q4预期 并预期裁员1,500 (2001/10/17 04:40)
在Delphi里播放Flash动画 (2001/09/26 11:29)
利用Delphi实现系统状态栏图标 (2001/09/25 10:11)


科技时代意见反馈留言板 电话:010-82612286 或 010-82628888-3488   欢迎批评指正

新浪简介 | 用户注册 | 广告服务 | 招聘信息 | 中文阅读 | Richwin | 联系方式 | 帮助信息

Copyright © 1996 - 2002 SINA.com, Stone Rich Sight. All Rights Reserved

版权所有 四通利方 新浪网