附件

  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的更多相关文章

  1. java stopwatch 功能

    C#中有一个stopwatch的功能,主要是用来监测程序执行时间的.java之前一直都在用如下方式完成: public static void main(String[] args) { long s ...

  2. 计时器StopWatch示例

    计时器 StopWatch stwatch = new StopWatch(getClass().getSimpleName()); try{ stwatch.start(joinPoint.getS ...

  3. 监测程序运行的时间,stopWatch

    ArrayList arrInt = new ArrayList(); //用stopwatch来计时 运行的时间 Stopwatch watch = new Stopwatch(); watch.S ...

  4. [转]使用Stopwatch类实现高精度计时

    对一段代码计时同查通常有三种方法.最简单就是用DateTime.Now来进行比较了,不过其精度只有3.3毫秒,可以通过DllImport导入QueryPerformanceFrequency和Quer ...

  5. Stopwatch 类

    Stopwatch 为计时器的实现. 主要属性方法 属性和方法 说明 static GetTimestamp() 如果Stopwatch使用高分辨率的性能计数器,则返回该计数器的当前值:如果Stopw ...

  6. Mini projects #3 ---- Stopwatch: The Game

    课程全名:An Introduction to Interactive Programming in Python,来自 Rice University 授课教授:Joe Warren, Scott ...

  7. C# StopWatch的使用

    在做项目的时候,需要输出数据库操作的耗时,自己写了个方法.老大看到后,奇怪我为什么不用现成的.才知道有StopWatch这个类. 属性       名称 说明 Elapsed 获取当前实例测量得出的总 ...

  8. 使用.net Stopwatch class 来分析你的代码

    当我们在调试,优化我们的代码的时候,想知道某段代码的真正的执行时间,或者我们怀疑某段代码,或是某几段代码执行比较慢, 需要得到具体的某段代码的具体执行时间的时候.有一个很好用的类Stopwatch. ...

  9. 一个简单的任务执行时间监视器 StopWatch

    有时我们在做开发的时候需要记录每个任务执行时间,或者记录一段代码执行时间,最简单的方法就是打印当前时间与执行完时间的差值,然后这样如果执行大量测试的话就很麻烦,并且不直观, 如果想对执行的时间做进一步 ...

  10. C# 检测程序运行时间的方法,Stopwatch类

    //需要引用命名空间,System.Diagnostics Stopwatch watch = new Stopwatch(); //实例化一个计时器 watch.Start(); //开始计时 #r ...

随机推荐

  1. Svn与Git的区别

    把第一条理解到位思想到位了做起来才会有的放矢,其他几条都是用的时候才能体会到 1) 最核心的区别Git是分布式的,而Svn不是分布的.能理解这点,上手会很容易,声明一点Git并不是目前唯一的分布式版本 ...

  2. Type 类型

    修改 type 类型 UPDATE  wd_order2 SET  info = array_append(info, row(2,100001, now() )::info )  WHERE id_ ...

  3. css3实现无缝滚动效果

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  4. 利用jquery操作Radio方法小结

    用Radio来实现用户的选择效果,在项目中积累了一些利用JQUERY来操作Radio的方法,这里与大家分享下 在开发中经常会用到Radio来实现用户的选择效果,我在项目中积累了一些利用JQUERY来操 ...

  5. spoj 3885

    简单的博弈题,用dp解: 每个人只能拿1,l,k个硬币: dp[i][j]表示第j个人拿是否能拿第i枚硬币: 代码: #include<cstdio> #define maxn 10000 ...

  6. 15个网页设计必备的Google Chrome 扩展

    2011年第一篇,翻译自freelancefolder的一篇文章.以下为译文内容: 最近,我将Google Chrome作为了我的主力浏览器,同时,将其作为我设计和开发网页的工具,尽管我还时常会去Fi ...

  7. Delphi WebBrowser控件的使用(大全 good)

    Delphi WebBrowser控件的使用 WebBrowser控件属性:1.Application      如果该对象有效,则返回掌管WebBrowser控件的应用程序实现的自动化对象(IDis ...

  8. 利用rowid更新单表

    SQL> create table test1(id int,name char(10)); Table created. begin for i in 1 .. 1000000 loop in ...

  9. not in改写关联无需考虑重复数据

    SQL> select * from a1; ID NAME ---------- ---------- 1 a 1 a 2 a 3 a SQL> select * from a2; ID ...

  10. 【HDOJ】前三百留念

    4个月不到的时间,终于刷到了HDOJ前三百.肯定还不够,好多基本的算法还不了解.还得继续学习.以此留念,假期目标是前一百.