自制“个性”上网计时器
数字办公
对于包月上网的朋友,实时掌握自己的上网时间是十分重要的,不知道大家想没想过自己制作有个性的上网计时器?下面我们就来用Delphi制作一个漂亮的计时器。
一、定义计时功能
在新建工程中添加“Timer1”计时控件,将“interval”属性设为1000(1秒),即每秒执行一次相应的代码。然后定义一组整数变量(intger),进行简单的累计和判断处理,就完成了计时的功能。双击“Timer1”计时控件,写入代码:

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/