自制“个性”上网计时器

数字办公

对于包月上网的朋友,实时掌握自己的上网时间是十分重要的,不知道大家想没想过自己制作有个性的上网计时器?下面我们就来用Delphi制作一个漂亮的计时器。

一、定义计时功能

在新建工程中添加“Timer1”计时控件,将“interval”属性设为1000(1秒),即每秒执行一次相应的代码。然后定义一组整数变量(intger),进行简单的累计和判断处理,就完成了计时的功能。双击“Timer1”计时控件,写入代码:

33-f14-2.jpg

procedure TMainForm.Timer1Timer(Sender: TObject);

begin

vs1:=vs1+1;

if (vs1=60) then

begin

vs1:=0;

vs2:=vs2+1;

end;

if (vs2=60) then

begin

vs2:=0;

vs3:=vs3+1;

end;

Value1:=IntToStr (vs1);

Value2:=IntToStr (vs2);

Value3:=IntToStr (vs3);

if vs1<10 then

value10:='0'+value1

else

value10:=value1;

if vs2<10 then

value20:='0'+value2

else

value20:=value2;

if vs3<10 then

value30:='0'+value3

else

value30:=value3;

panel1.Caption :=Value30+':'+value20+':'+value10; //计时时间显示

//在这里加入一组与上面一样的代码,将变量和显示控件改名即可完成累计时间的显示

end;

二、定义控制功能

1.连接与断开网络

首先要找到计算机用户建立的连接方式,可调用一些第三方接口库来实现(如《月影短信编程接口》),然后连接和挂断网络就可直接调用WIN32API函数,其中连接网络代码为:

WinExec(PChar('rasphone.exe -d '+‘连接方式名称’),1);

keybd_event(13,0,0,0); //向拨号窗口发送回车键,实现自动拨号

而挂断网络代码为:

WinExec(PChar('rasphone.exe -d '+‘连接方式名称’),1);

2.累计时间的存储

计时器只需存储少量的信息,没有必要调用什么数据库引擎,直接读写INI文件是最简便的方法。首先在开始的引用(USES)里加入“inifiles”类,在数据定义(VAR)里加入“IniFile: TIniFile;”,就可以在相关的按钮代码中使用读写INI文件的功能了。比如在“连接”按钮的代码中写入:

IniFile:=TIniFile.Create(ExtractFilePath(paramstr(0))+'Bnt_jsq.ini'); //建立或打开INI文件

vsb2:=IniFile.ReadInteger('Time','Time_m',0); //读取累计时间中的分钟数

vsb3:=IniFile.ReadInteger('Time','Time_n',0); //读取累计时间中的小时数

在“断开”按钮的代码中写入:

IniFile:=TIniFile.Create(ExtractFilePath(paramstr(0))+'Bnt_jsq.ini'); //建立或打开INI文件

IniFile.WriteInteger('Time','Time_m',vsb2); //存储累计时间中的分钟数

IniFile.WriteInteger('Time','Time_n',vsb3); //存储累计时间中的小时数

3.控制计时器的开关

要实现连接和挂断与计时器同步联动功能,只要在相应的按钮代码中写入:“timer1.Enabled:= True;”(启动计时器)或“timer1.Enabled:=False;”(停止计时器)即可。剩下的就是美化界面的工作了。

本文的源代码和程序下载地址:http://www.cpcw.com/bzsoft/