StopWatch
附件
http://download.csdn.net/detail/teststudio/6575241
主窗体UNIT
unit MainForm; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, ComCtrls; type
TFormMain = class(TForm)
Button2: TButton;
Button1: TButton;
Panel1: TPanel;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
FormMain: TFormMain; implementation uses Unit2, Unit3;
{$R *.dfm} var
frm_StopWatch: TForm2;
frm_CountDown: TForm3; procedure ShowStopWatch;
begin
with frm_StopWatch do
begin
Parent := FormMain.Panel1;
BorderStyle := BsNone;
Align := alClient;
Show;
end;
end; procedure ShowCountDown;
begin
with frm_CountDown do
begin
Parent := FormMain.Panel1;
BorderStyle := BsNone;
Align := alClient;
Show;
end;
end; procedure SetButtonEnabled1;
begin
FormMain.Caption:='秒表';
FormMain.Button1.Enabled := False;
FormMain.Button2.Enabled := True;
end; procedure SetButtonEnabled2;
begin
FormMain.Caption:='倒计时';
FormMain.Button1.Enabled := True;
FormMain.Button2.Enabled := False;
end; procedure TFormMain.Button1Click(Sender: TObject);
begin
// 秒表
SetButtonEnabled1;
ShowStopWatch;
frm_CountDown.Hide;
end; procedure TFormMain.Button2Click(Sender: TObject);
begin
SetButtonEnabled2;
ShowCountDown;
frm_StopWatch.Hide; end; procedure TFormMain.FormCreate(Sender: TObject);
begin
frm_StopWatch := TForm2.Create(self);
frm_CountDown := TForm3.Create(self);
ShowStopWatch;
end; end.
主窗体FRM
object FormMain: TFormMain
Left =
Top =
BorderIcons = [biSystemMenu, biMinimize]
BorderStyle = bsSingle
Caption = ##
ClientHeight =
ClientWidth =
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -
Font.Name = 'Tahoma'
Font.Style = []
FormStyle = fsStayOnTop
OldCreateOrder = False
Position = poDesktopCenter
OnCreate = FormCreate
PixelsPerInch =
TextHeight =
object Button2: TButton
Left =
Top =
Width =
Height =
Caption = ###
TabOrder =
OnClick = Button2Click
end
object Button1: TButton
Left =
Top =
Width =
Height =
Caption = ##
Enabled = False
TabOrder =
OnClick = Button1Click
end
object Panel1: TPanel
Left =
Top =
Width =
Height =
Caption = 'Panel1'
TabOrder =
end
end
主窗体FRM
//秒表Unit2
unit Unit2; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, ComCtrls, Menus,
Buttons; type
TForm2 = class(TForm)
Timer1: TTimer;
ListView1: TListView;
Label2: TLabel;
Timer2: TTimer;
Label1: TLabel;
Button1: TButton;
Button2: TButton;
procedure Timer1Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
procedure FormClick(Sender: TObject);
private
{ Private declarations }
procedure AddListViewItem;
procedure CleanLabel2;
procedure tglForm;
public
{ Public declarations }
end; var
Form2: TForm2; implementation {$R *.dfm} procedure TForm2.Button1Click(Sender: TObject);
begin
if Button1.Caption = '开始' then
begin
Button1.Caption := '停止';
Button2.Caption := '计次';
Timer1.Enabled := True;
Timer2.Enabled := True;
// Button1.Color:=clRed;
end
else
begin
Button1.Caption := '开始';
Button2.Caption := '复位';
Timer1.Enabled := False;
Timer2.Enabled := False;
// Button1.Color:=clGreen;
end;
end; procedure TForm2.AddListViewItem;
var
i: Integer;
begin i := ListView1.Items.Count + ;
with ListView1.Items.Add do
begin
Caption := IntToStr(i);
SubItems.Add(Label2.Caption);
end;
SendMessage(ListView1.Handle, WM_VSCROLL, SB_BOTTOM, );
end; var
h: Integer = ;
m: Integer = ;
s: Integer = ; h1: Integer = ;
m1: Integer = ;
s1: Integer = ; procedure TForm2.CleanLabel2;
begin
if Button2.Caption = '计次' then
begin
h := ;
m := ;
s := ;
Label2.Caption := Format('%.2d:%.2d:%.2d', [h, m, s]);
end; if Button2.Caption = '复位' then
begin
h := ;
m := ;
s := ; h1 := ;
m1 := ;
s1 := ;
Label1.Caption := Format('%.2d:%.2d:%.2d', [h1, m1, s1]);
Label2.Caption := Format('%.2d:%.2d:%.2d', [h, m, s]);
ListView1.Clear;
end; end; procedure TForm2.tglForm;
begin
if Height = then
Height :=
else
Height := ;
end; procedure TForm2.FormClick(Sender: TObject);
begin
tglForm;
end; procedure TForm2.Button2Click(Sender: TObject);
begin
AddListViewItem;
CleanLabel2;
end; procedure TForm2.Timer1Timer(Sender: TObject);
begin
inc(s1);
if s1 >= then
begin
inc(m1);
s1 := ;
end;
if m1 >= then
begin
inc(h1);
m1 := ;
end;
Label1.Caption := Format('%.2d:%.2d:%.2d', [h1, m1, s1]);
end; procedure TForm2.Timer2Timer(Sender: TObject);
begin
inc(s);
if s >= then
begin
inc(m);
s := ;
end;
if m >= then
begin
inc(h);
m := ;
end;
Label2.Caption := Format('%.2d:%.2d:%.2d', [h, m, s]); end; end.
object Form2: TForm2
Left =
Top =
BorderIcons = [biSystemMenu, biMinimize]
Caption = ##
ClientHeight =
ClientWidth =
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clNone
Font.Height = -
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
Position = poDesktopCenter
OnClick = FormClick
DesignSize = ( )
PixelsPerInch =
TextHeight =
object Label2: TLabel
Left =
Top =
Width =
Height =
AutoSize = False
Caption = '00:00:00'
Color = clBackground
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlack
Font.Height = -
Font.Name = 'Tahoma'
Font.Style = []
ParentColor = False
ParentFont = False
end
object Label1: TLabel
Left =
Top =
Width =
Height =
AutoSize = False
Caption = '00:00:00'
Font.Charset = ANSI_CHARSET
Font.Color = clNone
Font.Height = -
Font.Name = ####
Font.Style = [fsBold]
ParentFont = False
end
object ListView1: TListView
Left =
Top =
Width =
Height =
Anchors = [akLeft, akTop, akRight, akBottom]
BorderStyle = bsNone
Color = clCream
Columns = <
item
Caption = ##
Width =
end
item
Caption = ##
Width =
end>
ColumnClick = False
Font.Charset = ANSI_CHARSET
Font.Color = clNone
Font.Height = -
Font.Name = ####
Font.Style = []
FlatScrollBars = True
HideSelection = False
MultiSelect = True
RowSelect = True
ParentFont = False
TabOrder =
ViewStyle = vsReport
end
object Button1: TButton
Left =
Top =
Width =
Height =
Caption = ##
Default = True
TabOrder =
OnClick = Button1Click
end
object Button2: TButton
Left =
Top =
Width =
Height =
Cancel = True
Caption = ##
TabOrder =
OnClick = Button2Click
end
object Timer1: TTimer
Enabled = False
OnTimer = Timer1Timer
Left =
Top =
end
object Timer2: TTimer
Enabled = False
OnTimer = Timer2Timer
Left =
Top =
end
end
Unit2.DFM
unit Unit3; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Spin; type
TForm3 = class(TForm)
Timer1: TTimer;
Label1: TLabel;
Button1: TButton;
Panel1: TPanel;
SpinEdit1: TSpinEdit;
SpinEdit2: TSpinEdit;
SpinEdit3: TSpinEdit;
Timer2: TTimer;
ComboBox1: TComboBox;
procedure Timer1Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ComboBox1CloseUp(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
Form3: TForm3; implementation uses MmSystem;
{$R SOUND.RES}
{$R *.dfm} var
h1: Integer = ;
m1: Integer = ;
s1: Integer = ;
SoundID: PChar = 'RING3'; procedure TForm3.Button1Click(Sender: TObject);
begin
h1 := SpinEdit1.Value;
m1 := SpinEdit2.Value;
s1 := SpinEdit3.Value; if Button1.Caption = '开始' then
begin
Button1.Caption := '停止';
Timer1.Enabled := True;
panel1.Visible:=False;
label1.Visible:=True;
end
else
begin
Button1.Caption := '开始';
Timer1.Enabled := false;
PlaySound(, , );
panel1.Visible:=True;
label1.Visible:=False;
end; end; procedure TForm3.ComboBox1CloseUp(Sender: TObject);
begin
case ComboBox1.ItemIndex of
:
SoundID := 'RING1';
:
SoundID := 'RING2';
:
SoundID := 'RING3';
end;
end; procedure TForm3.FormCreate(Sender: TObject);
begin
ComboBox1.ItemIndex := ;
label1.Left:=;
Label1.Top:=;
label1.Visible:=False;
end; procedure TForm3.Timer1Timer(Sender: TObject);
begin if (h1 <= ) and (m1 <= ) and (s1 <= ) then
begin
Timer1.Enabled := false;
Button1.Caption := '结束';
label1.Caption:='00:00:00';
PlaySound(SoundID, , snd_ASync or snd_Loop or snd_Resource );
exit;
end; Dec(s1);
if s1 <= then
begin
if (m1 > ) or (h1 > ) then
begin
Dec(m1);
s1 := ;
end;
end;
if m1 < then
begin
if h1 > then
begin
Dec(h1);
m1 := ;
end;
end; Label1.Caption := Format('%.2d:%.2d:%.2d', [h1, m1, s1]);
end; end.
object Form3: TForm3
Left =
Top =
Caption = ###
ClientHeight =
ClientWidth =
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
Position = poDesktopCenter
OnCreate = FormCreate
PixelsPerInch =
TextHeight =
object Label1: TLabel
Left =
Top =
Width =
Height =
Alignment = taCenter
AutoSize = False
Caption = '00:00:00'
Font.Charset = ANSI_CHARSET
Font.Color = clNone
Font.Height = -
Font.Name = ####
Font.Style = [fsBold]
ParentFont = False
Transparent = True
end
object Button1: TButton
Left =
Top =
Width =
Height =
Caption = ##
Default = True
TabOrder =
OnClick = Button1Click
end
object Panel1: TPanel
Left =
Top =
Width =
Height =
BevelOuter = bvNone
TabOrder =
object SpinEdit1: TSpinEdit
Left =
Top =
Width =
Height =
MaxValue =
MinValue =
TabOrder =
Value =
end
object SpinEdit2: TSpinEdit
Left =
Top =
Width =
Height =
MaxValue =
MinValue =
TabOrder =
Value =
end
object SpinEdit3: TSpinEdit
Left =
Top =
Width =
Height =
MaxValue =
MinValue =
TabOrder =
Value =
end
object ComboBox1: TComboBox
Left =
Top =
Width =
Height =
Style = csDropDownList
ImeName = ##' - QQ'#####
TabOrder =
OnCloseUp = ComboBox1CloseUp
Items.Strings = (
'RING1'
'RING2'
'RING3')
end
end
object Timer1: TTimer
Enabled = False
OnTimer = Timer1Timer
Left =
Top =
end
object Timer2: TTimer
Enabled = False
Left =
Top =
end
end
倒计时窗体文件
StopWatch的更多相关文章
- java stopwatch 功能
C#中有一个stopwatch的功能,主要是用来监测程序执行时间的.java之前一直都在用如下方式完成: public static void main(String[] args) { long s ...
- 计时器StopWatch示例
计时器 StopWatch stwatch = new StopWatch(getClass().getSimpleName()); try{ stwatch.start(joinPoint.getS ...
- 监测程序运行的时间,stopWatch
ArrayList arrInt = new ArrayList(); //用stopwatch来计时 运行的时间 Stopwatch watch = new Stopwatch(); watch.S ...
- [转]使用Stopwatch类实现高精度计时
对一段代码计时同查通常有三种方法.最简单就是用DateTime.Now来进行比较了,不过其精度只有3.3毫秒,可以通过DllImport导入QueryPerformanceFrequency和Quer ...
- Stopwatch 类
Stopwatch 为计时器的实现. 主要属性方法 属性和方法 说明 static GetTimestamp() 如果Stopwatch使用高分辨率的性能计数器,则返回该计数器的当前值:如果Stopw ...
- Mini projects #3 ---- Stopwatch: The Game
课程全名:An Introduction to Interactive Programming in Python,来自 Rice University 授课教授:Joe Warren, Scott ...
- C# StopWatch的使用
在做项目的时候,需要输出数据库操作的耗时,自己写了个方法.老大看到后,奇怪我为什么不用现成的.才知道有StopWatch这个类. 属性 名称 说明 Elapsed 获取当前实例测量得出的总 ...
- 使用.net Stopwatch class 来分析你的代码
当我们在调试,优化我们的代码的时候,想知道某段代码的真正的执行时间,或者我们怀疑某段代码,或是某几段代码执行比较慢, 需要得到具体的某段代码的具体执行时间的时候.有一个很好用的类Stopwatch. ...
- 一个简单的任务执行时间监视器 StopWatch
有时我们在做开发的时候需要记录每个任务执行时间,或者记录一段代码执行时间,最简单的方法就是打印当前时间与执行完时间的差值,然后这样如果执行大量测试的话就很麻烦,并且不直观, 如果想对执行的时间做进一步 ...
- C# 检测程序运行时间的方法,Stopwatch类
//需要引用命名空间,System.Diagnostics Stopwatch watch = new Stopwatch(); //实例化一个计时器 watch.Start(); //开始计时 #r ...
随机推荐
- 基础-函数3(IIFE立即执行函数)
参考链接: http://benalman.com/news/2010/11/immediately-invoked-function-expression/#iife http://segmentf ...
- Bayeux协议
Bayeux 协议-- Bayeux 1.0草案1 本备忘录状态 This document specifies a protocol for the Internet community, and ...
- 帝国cms 列表页分页样式修改美化【1】
[1]自己修改帝国cms默认的分页样式(css),这样做的好处是你不用去改动帝国的核心文件,方便以后升级. [2]自己动手去修改帝国的分页(php+css),帝国的分页在e>class>下 ...
- CANoe 入门 Step by step系列(一)基础应用【转】
CANoe是Vector公司的针对汽车电子行业的总线分析工具,现在我用CANoe7.6版本进行介绍,其他版本功能基本差不多. 硬件我使用的是CAN case XL. 1,CANoe软件的安装很简单,先 ...
- Delphi FireMonkey使用UniDAC 连接MySQL
首次用Delphi XE6 开发安卓程序,并没有在网上找到连接远程MySQL服务器的文档,自己摸索一番,发现UniDAC控件新版本也已支持了FireMonkey下的开发.遂记下连接方法和大家分享. 1 ...
- 既然HTTP1.1协议里每个连接默认都是持久连接,那么为何当今所有报文都在使用Connetion:Keep-Alive
说白了,如果你发起时有,那么服务器支持,回应时也会有,不支持,也就没有了.所以一般客户端都会默认带着发,服务端返回不返回就是服务端的事了. 1. 支不支持长连接,关键在于服务端是否支持. 如果服务端不 ...
- JDK源码阅读(三) Collection<T>接口,Iterable<T>接口
package java.util; public interface Collection<E> extends Iterable<E> { //返回该集合中元素的数量 in ...
- POOL
#ifndef POOL_HHH #define POOL_HHH #include "common.h" /* simple and fast obj pool without ...
- 【NOIP 2011】 观光公交
题目描述 Description 风景迷人的小城 Y 市,拥有n 个美丽的景点.由于慕名而来的游客越来越多,Y 市特意安排了一辆观光公交车,为游客提供更便捷的交通服务.观光公交车在第0 分钟出现在1号 ...
- eclipse设置字体大小
eclipse是我们常用的开发工具.eclipse中的默认字体往往并不满足我们的需要,我经常要调节一下它的大小或者换一下风格.eclipse中的字体大小怎么改变呢? 工具/原料 eclipse 方法/ ...