因为这个程序只需要一个timer控件就可以了,所以为了小巧,不要窗体。
那么如何在不要窗体的情况下创建这个timer控件,并且为他设置好interval属性和ontimer事件呢?
请给出代码,要详细,谢谢!
好用就立即给分!

解决方案 »

  1.   

    如果要程序小巧可以考虑用API用了窗体也就十多K
      

  2.   

    不会吧,不要窗体,就不能用timer控件了,timer需放到容器中!!
    你可以自己设计timer控件,用api写窗体!!
      

  3.   

    const TIMER_ID = $100;procedure TimeMessage( var msg: TMessage );message WM_TIMER;
    procedure TimerEnable( int interval );
    begin
       SetTimer( handle,TIMER_ID,interval,NULL);
    end;procedure TimeMessage( var msg: TMessage );
    begin
       if ( msg.wParam = TIMER_ID ) then
       begin
          //  .....
       end;
    end;procedure TimerClose();
    begin
       KillTimer( handle, TIMER_ID );
    end;
      

  4.   

    完全可以!//////////////////////program Project2;uses  extctrls,  windows,
      Unit1 in 'Unit1.pas';{$R *.res}var
    timer:ttimer;
    obj:tmyclass;
    msg:tmsg;
    begin  timer:=ttimer.Create(nil);
      obj:=tmyclass.Create;
      timer.OnTimer:=obj.timerproc;
      timer.Interval:=1000;  timer.Enabled:=true;
      while getmessage(msg,0,0,0) do
      begin
      translatemessage(msg);
      dispatchmessage(msg);  end;end.
    ////////////////////////
    unit Unit1;interface
    uses
    windows,sysutils,extctrls,classes,controls;
    type
      TMyclass=class
      private  public    procedure timerproc(sender:tobject);  end;
    implementation{ MyTimer }procedure TMyclass.timerproc(sender: tobject);
    begin
      messagebeep(MB_OK);
    end;end.
    /////////////////////////
    不过这将永远循环!!
      

  5.   

    如果想让他响固定的次数,或者说运行固定的时间,只要运行的时候加上命令行参数,并在  while getmessage(msg,0,0,0) do
      begin
      translatemessage(msg);
      dispatchmessage(msg);  end;这个循环里面加上一个计数,到达strtoint(paramstr(1))的时候就exitprocess(0)!!
      

  6.   

    program Project2;uses  extctrls,
      sysutils,
      windows,
      Unit1 in 'Unit1.pas';{$R *.res}
    const
    times=10;
    var
    timer:ttimer;
    obj:tmyclass;
    msg:tmsg;
    t:integer;
    begin
      t:=0;
      timer:=ttimer.Create(nil);
      obj:=tmyclass.Create;
      timer.OnTimer:=obj.timerproc;
      timer.Interval:=1000;  timer.Enabled:=true;
      while getmessage(msg,0,0,0) do
      begin
      inc(t);
      try
        if t>strtoint(paramstr(1)) then exitprocess(0);
      except
        exit;
      end;  translatemessage(msg);
      dispatchmessage(msg);  end;
      timer.Free;
      obj.Free;
    end.