附件
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 = 0 Top = 0 BorderIcons = [biSystemMenu, biMinimize] BorderStyle = bsSingle Caption = #31186#34920 ClientHeight = 282 ClientWidth = 243 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] FormStyle = fsStayOnTop OldCreateOrder = False Position = poDesktopCenter OnCreate = FormCreate PixelsPerInch = 96 TextHeight = 13 object Button2: TButton Left = 120 Top = 255 Width = 121 Height = 25 Caption = #20498#35745#26102 TabOrder = 0 OnClick = Button2Click end object Button1: TButton Left = 2 Top = 255 Width = 119 Height = 25 Caption = #31186#34920 Enabled = False TabOrder = 1 OnClick = Button1Click end object Panel1: TPanel Left = 2 Top = 2 Width = 239 Height = 249 Caption = 'Panel1' TabOrder = 2 end end
//秒表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 + 1; with ListView1.Items.Add do begin Caption := IntToStr(i); SubItems.Add(Label2.Caption); end; SendMessage(ListView1.Handle, WM_VSCROLL, SB_BOTTOM, 0); end; var h: Integer = 0; m: Integer = 0; s: Integer = 0; h1: Integer = 0; m1: Integer = 0; s1: Integer = 0; procedure TForm2.CleanLabel2; begin if Button2.Caption = '计次' then begin h := 0; m := 0; s := 0; Label2.Caption := Format('%.2d:%.2d:%.2d', [h, m, s]); end; if Button2.Caption = '复位' then begin h := 0; m := 0; s := 0; h1 := 0; m1 := 0; s1 := 0; 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 = 341 then Height := 122 else Height := 341; 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 >= 60 then begin inc(m1); s1 := 0; end; if m1 >= 60 then begin inc(h1); m1 := 0; end; Label1.Caption := Format('%.2d:%.2d:%.2d', [h1, m1, s1]); end; procedure TForm2.Timer2Timer(Sender: TObject); begin inc(s); if s >= 60 then begin inc(m); s := 0; end; if m >= 60 then begin inc(h); m := 0; end; Label2.Caption := Format('%.2d:%.2d:%.2d', [h, m, s]); end; end.
object Form2: TForm2 Left = 0 Top = 0 BorderIcons = [biSystemMenu, biMinimize] Caption = #31186#34920 ClientHeight = 204 ClientWidth = 242 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clNone Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False Position = poDesktopCenter OnClick = FormClick DesignSize = ( 242 204) PixelsPerInch = 96 TextHeight = 13 object Label2: TLabel Left = 168 Top = 24 Width = 62 Height = 19 AutoSize = False Caption = '00:00:00' Color = clBackground Font.Charset = DEFAULT_CHARSET Font.Color = clBlack Font.Height = -15 Font.Name = 'Tahoma' Font.Style = [] ParentColor = False ParentFont = False end object Label1: TLabel Left = 8 Top = 10 Width = 145 Height = 33 AutoSize = False Caption = '00:00:00' Font.Charset = ANSI_CHARSET Font.Color = clNone Font.Height = -29 Font.Name = #24494#36719#38597#40657 Font.Style = [fsBold] ParentFont = False end object ListView1: TListView Left = 8 Top = 80 Width = 226 Height = 116 Anchors = [akLeft, akTop, akRight, akBottom] BorderStyle = bsNone Color = clCream Columns = < item Caption = #35745#27425 Width = 40 end item Caption = #26102#38388 Width = 140 end> ColumnClick = False Font.Charset = ANSI_CHARSET Font.Color = clNone Font.Height = -13 Font.Name = #24494#36719#38597#40657 Font.Style = [] FlatScrollBars = True HideSelection = False MultiSelect = True RowSelect = True ParentFont = False TabOrder = 0 ViewStyle = vsReport end object Button1: TButton Left = 8 Top = 49 Width = 105 Height = 25 Caption = #24320#22987 Default = True TabOrder = 1 OnClick = Button1Click end object Button2: TButton Left = 119 Top = 49 Width = 111 Height = 25 Cancel = True Caption = #22797#20301 TabOrder = 2 OnClick = Button2Click end object Timer1: TTimer Enabled = False OnTimer = Timer1Timer Left = 88 Top = 112 end object Timer2: TTimer Enabled = False OnTimer = Timer2Timer Left = 136 Top = 112 end end
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 = 0; m1: Integer = 0; s1: Integer = 0; 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(0, 0, 0); panel1.Visible:=True; label1.Visible:=False; end; end; procedure TForm3.ComboBox1CloseUp(Sender: TObject); begin case ComboBox1.ItemIndex of 0: SoundID := 'RING1'; 1: SoundID := 'RING2'; 2: SoundID := 'RING3'; end; end; procedure TForm3.FormCreate(Sender: TObject); begin ComboBox1.ItemIndex := 2; label1.Left:=8; Label1.Top:=20; label1.Visible:=False; end; procedure TForm3.Timer1Timer(Sender: TObject); begin if (h1 <= 0) and (m1 <= 0) and (s1 <= 0) then begin Timer1.Enabled := false; Button1.Caption := '结束'; label1.Caption:='00:00:00'; PlaySound(SoundID, 0, snd_ASync or snd_Loop or snd_Resource ); exit; end; Dec(s1); if s1 <= 0 then begin if (m1 > 0) or (h1 > 0) then begin Dec(m1); s1 := 60; end; end; if m1 < 0 then begin if h1 > 0 then begin Dec(h1); m1 := 60; end; end; Label1.Caption := Format('%.2d:%.2d:%.2d', [h1, m1, s1]); end; end.
object Form3: TForm3 Left = 0 Top = 0 Caption = #20498#35745#26102 ClientHeight = 217 ClientWidth = 238 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False Position = poDesktopCenter OnCreate = FormCreate PixelsPerInch = 96 TextHeight = 13 object Label1: TLabel Left = 8 Top = 151 Width = 222 Height = 42 Alignment = taCenter AutoSize = False Caption = '00:00:00' Font.Charset = ANSI_CHARSET Font.Color = clNone Font.Height = -29 Font.Name = #24494#36719#38597#40657 Font.Style = [fsBold] ParentFont = False Transparent = True end object Button1: TButton Left = 8 Top = 82 Width = 222 Height = 39 Caption = #24320#22987 Default = True TabOrder = 0 OnClick = Button1Click end object Panel1: TPanel Left = 8 Top = 8 Width = 222 Height = 68 BevelOuter = bvNone TabOrder = 1 object SpinEdit1: TSpinEdit Left = 8 Top = 11 Width = 49 Height = 22 MaxValue = 9999 MinValue = 0 TabOrder = 0 Value = 0 end object SpinEdit2: TSpinEdit Left = 63 Top = 11 Width = 49 Height = 22 MaxValue = 60 MinValue = 0 TabOrder = 1 Value = 0 end object SpinEdit3: TSpinEdit Left = 118 Top = 11 Width = 49 Height = 22 MaxValue = 60 MinValue = 0 TabOrder = 2 Value = 60 end object ComboBox1: TComboBox Left = 8 Top = 39 Width = 201 Height = 21 Style = csDropDownList ImeName = #20013#25991' - QQ'#20116#31508#36755#20837#27861 TabOrder = 3 OnCloseUp = ComboBox1CloseUp Items.Strings = ( 'RING1' 'RING2' 'RING3') end end object Timer1: TTimer Enabled = False OnTimer = Timer1Timer Left = 176 Top = 176 end object Timer2: TTimer Enabled = False Left = 176 Top = 224 end end