网上找的DELAY函数 procedure Delay(msecs:integer); var Tick: DWord; Event: THandle; begin Event := CreateEvent(nil, False, False, nil); try Tick := GetTickCount + DWord(msecs); while (msecs > 0) and (MsgWaitForMultipleObjects(1, Event, False, msecs, QS_ALLINPUT) <> WAIT_TIMEOUT) do begin Application.ProcessMessages; msecs := Tick - GetTickcount; end; finally CloseHandle(Event); end; timer1周期为30秒,每隔一段时间(10-2000毫秒)发一个指令,这样会造成程序在运行期间很难关闭,或者打开子窗口一直都关掉,或者子窗口移动不了,请问是不是delay函数造成的呢? procedure TForm1.Timer1Timer(Sender: TObject); begin if radiobutton1.checked=true then begin if idtelnet1.Connected then begin idtelnet1.SendCh('1'); end; delay(2000); if idtelnet1.Connected then begin idtelnet1.SendCh('2'); end; delay(2000); if idtelnet1.Connected then begin idtelnet1.SendCh('3'); end; delay(2000); if idtelnet1.Connected then begin idtelnet1.SendCh('4'); end; delay(2000); if idtelnet1.Connected then begin idtelnet1.SendCh('%'); end; delay(2000); if idtelnet1.Connected then begin idtelnet1.SendCh('!'); end; delay(2000); if idtelnet1.Connected then begin idtelnet1.SendCh(#'); end; ... ... ... end; end; 如果只修改delay函数的话,有什么方法可以很快地解决呢?
----------------------------------------------
-