안녕하세요... 댁스텁니다..
일정시간 delay를 주기위해서 sleep() 함수를 사용할 수 있지만, sleep()함수는 쓰레드
자체가 멈추기때문에 sleep()함수를 호출하기 전에 수행되던 코드들까지도 멈춰버리죠..
결국 delay와는 거리가 좀... 있는 것같군요...
delay는 다음 코드 진행을 일정시간 지연을 시켜주면서 delay를 호출하기 전의 코드들은
수행이 되고 있어야 될 것같습니다...
다음은 sleep()함수를 이용하지 않고 delay를 구현한 예입니다...
procedure delay(Time: Integer);
var
PastCount: LongInt;
begin
PastCount := GetTickCount;
repeat
Application.ProcessMessages;
until ((GetTickCount-PastCount) >= LongInt(Time));
end;
GetTickCount()라는 API함수를 이용했고,,, 인자인 Time은 밀리초 단위입니다.
즉 1000이 1초죠... 그래서 1000을 지정하면 1초가 delay됩니다...
THEXDER
|