if GetAsyncKeyState(27)=-32767 then    //按下ESC键begin
timer1.Enabled:=false;                 停止TIMER1
end
else if (GetAsyncKeyState(27)=-32767) and (timer1.Enabled=false) then   //按下ESC键begin
begin
timer1.Enabled:=true;                              //启动TIMER1
end;有两个时钟TIMER1和TIMER2,都是启动状态
按下ESC键时,TIMER1停止,再按一下ESC键,TIMER1启动,上面是TIMER2中的代码,为什么不能实现呢?停止TIMER1以后就再按ESC时就不能启动了

解决方案 »

  1.   

    if GetAsyncKeyState(27)=-32767 then    //按下ESC键
    begin 
    timer1.Enabled:=false;                停止TIMER1 
    end 
    else if (GetAsyncKeyState(27)=-32767) and (timer1.Enabled=false) then  //再按下ESC键
    begin 
    timer1.Enabled:=true;                              //启动TIMER1 
    end; 
      

  2.   

    第二个判断是进不去的,改下顺序。if (GetAsyncKeyState(27)=-32767) and (timer1.Enabled=false) then    
    begin 
       timer1.Enabled:=true;                停止TIMER1 
    end 
    else if GetAsyncKeyState(27)=-32767 then  //按下ESC键
    begin 
       timer1.Enabled:=false;                              //启动TIMER1 
    end; 
      

  3.   


    不行啊,这样按ESE键都不能停止TIMER1了
      

  4.   

    改成这样:if GetAsyncKeyState(27)=-32767 then    //按下ESC键 
    begin 
      timer1.Enabled := not timer1.Enabled;
    end;
      

  5.   

    这样: if (GetAsyncKeyState(27)=-32767) then
         timer1.Enabled:=not timer1.Enabled;
      

  6.   

    if (GetAsyncKeyState(27)=-32767) and  (timer1.Enabled=true) then    //按下ESC键 
    begin 
    timer1.Enabled:=false;                停止TIMER1 
    end 
    else if (GetAsyncKeyState(27)=-32767) and (timer1.Enabled=false) then  //再按下ESC键 
    begin 
    timer1.Enabled:=true;                              //启动TIMER1 
    end;