如何控制倒计时?(50分)

  • 主题发起人 主题发起人 caesar
  • 开始时间 开始时间
C

caesar

Unregistered / Unconfirmed
GUEST, unregistred user!
form上放了一个button, 一个label ,一个timer,
现在要达到通过点击button后,label开始每秒倒计时,
请问,button 的click是一个过程,label上的时间变化
又必须包含在timertimer过程中,如何处理?
 
先取消 Timer1 的執行
Timer1.enabled:=false
當按鍵時才執行 Timer1.enabled:=true;
設置 Timer1 每秒執行一次

如要倒計時,需要一個計量單位,如由十數至一
var
K1:Cardinal:=9999;

TimerTimer 內為
dec(k1);
Label1.caption:=InttoStr(k1);
不知是否符合你的要求?

 
在button的OnClick事件中,设timer.enabled:=true,
在timer的OnTime事件中,写上倒计的代码,
当然事先要设好Timer1.Interval:=your time,timer1.enabled:=false;
 
看一下吧
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls;

type
TForm1 = class(TForm)
Label1: TLabel;
Button1: TButton;
Timer1: TTimer;
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
a :tTime;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
a:=StrToTime( '23:30:00');
Timer1.Enabled:=True;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label1.Caption:=TimeTostr(a- time)
end;

end.
 
如果用上面的方法,可以结决了!
 
多人接受答案了。
 
后退
顶部