没有Form的程序可以动态的创建一个计时器。
uses
  ExtCtrls;procedure TimerEvent();
begin
//todo:
end;//
var
  Timer: TTimer;
begin
  Timer := TTimer.Create;
  Timer.OnTimer := TimerEvent;
end;TimerEvent的代码和要写在OnTimer里的一样,注意检查Timer的有效性。

解决方案 »

  1.   

    那么也简单啊:
    var
      Timer1: TTimer;var
      Timer1: TTimer;  Timer1 := TTimer.Create(Self);
      with Timer1 do
      begin
        Name := 'Timer1';
        Interval := 1000;
        OnTimer := Timer1Timer;
        Left := 190;
        Top := 120;
      end;procedure TYourClass.Timer1Timer(Sender: TObject);
    begin
      // do your things
    end;
      

  2.   

    settimer的参数HWND设置为应用程序句柄就可以了,application.handle其实楼上两位已经解决你的问题了,只要用个控件就行。 timer控件。
      

  3.   

    SORRY,还是不行啊,看看怎么回事?
    program Project2;
    uses
      messages,ExtCtrls,classes;
     
    {$R *.RES}VAR
      Timer1: TTimer;procedure TimerE;
    begin    showmessage('ok');
    end;begin
      Timer1 := TTimer.Create(self);
      with Timer1 do
      begin
        Name := 'Timer1';
        Interval := 1000;
        OnTimer := TimerE;
        Left := 190;
        Top := 120;
      end;
    end.
      

  4.   

    你可没有参考我的例子。我的例子中Timer1Timer可是放在一个类中的。
    区别就在这里,你放到一个类里。此外,参数还需要一致。