delphi编程中的棘手问题;求指教!


我的程序是用delphi编程向步进电机发脉冲,每个发脉冲的过程都是一个耗时的循环,每个循环都是由按钮点击事件来触发,在循环中我用了application.ProcessMessages ;因为如果不用这个语句,当一个循环运行时,则不会任何别的操作,可问题是现在只能有一个循环运行,多个发脉冲的循环不能同时运行,
我先点击一个按钮来触发第一个循环的。也就是一个循环正在运行时,点击触发第二个循环的按钮,
则上一个正在运行的循环就会中止,直到第二个循环运行完后,第一个再继续运行,好像被中断了。

那么如何实现多个发脉冲的循环同时运行呢?在发脉冲时我还多次用到了延时程序:

procedure     delay(us:integer);                       //延时程序US
var start,timeend:int64;
begin
 QueryPerformanceCounter(start);

repeat
  application.ProcessMessages ;
 QueryPerformanceCounter(timeend) ;
until ((timeend-start)>=us);

end;

敬请指教!!!

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭