在网上行走时,经常会看到弹出的桌面小窗体,有时做广告,有时向你致以节日的问候;人们称其为桌面小精灵;有的桌面小精灵会自动移动,有的固定在屏幕的某一角落,动画闪烁,煞是迷人。本人用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.
|