计时后你想作什么?代码当然是写在Ontimer事件中。
Timer.enable没什么不对啊。Interval设好就行了。

解决方案 »

  1.   

    放一个变量,在Timer触发的时候取得系统时间赋值给这个变量,在Timer.Enabled:=False的时候再取得系统时间,将这个时间减去开始的那个时间不就可以了吗?
      

  2.   

    Timer本来就是从你把它设为ENABLE才开始计时的啊,有什么问题?
      

  3.   

    你想计时不一定非要用ttimer,象yypp()说的那样,用前后两个时间相减就行了。
      

  4.   

    你也可以这样做(比较复杂,权当没看见):
        设一标志变量,初始值为0。
        在ontimer事件中判断标志变量是否为0
        是,判断当前时间是否为你想要的时刻
           是,则标志变量赋为1,Interval设为你想要的计时时间;
           不是, 则什么也不干;
        不是,做你想要做的事情。
        end;
            
      

  5.   

    最简单的方法:
    假设我要在11:30:30开始记时;timer1.ontimer(sender : TObject);
    const
     start : boolean=false;
    var
     t : TTime;
    begin
     if t=strtotime('11:30:30') then
     begin
      timer1.enabled:=false;
      timer1.enabled:=true;
      start:=true;
     end; 
     if start then
     begin
      .....
     end;
    end;
      

  6.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Timer1.Enabled := False;
      Timer1.Interval := 50000;  //从按下开始,50秒后产生……
      Timer1.Enabled := True;
    end;procedure TForm1.Timer1Timer(Sender: TObject);
    begin
      ShowMessage('haha!Time is over!');
    end;