这个问题在分布式开发版块已经提问过,可还是没有解决,在次版块再现一次,望指教
问题是这样的在CONSOLE模式下,系统启动时,如何让系统等待10s,且在10s内,如果按任何键,则跳去执行A事件,否则,10s结束,则转去执行B事件。
我试着不用多线程来寻求解决问题的办法,代码如下: for i:=1 to 10 do
  begin
  sleep(100); //等待10s
  read(AChar);//从键盘获取字符输入
  if Achar='Y' then
  break;
 end;
 执行到read时就停止了,无法在执行循环了
 这样写还是不行,就是不知道如何修改,请指教!!

解决方案 »

  1.   

    用ttimer,在10秒内processmessage,或直接检测键盘鼠标消息。
      

  2.   

    肯定不行,因为系统在10秒内已经Sleep了或许你在界面中同时采用按键线程捕捉试一下
      

  3.   

    read(AChar);//从键盘获取字符输入
    会一直停在那里等待键盘输入……
      

  4.   

    之前记录一下时间
    read(Achar)
    之后,判断时间差是否是在10秒内,若在10秒内,则执行A
    ,唉,写不下去了,一个线程是无法实现的!
    必须用另一个线程监视