본문 바로가기

파이어몽키

메인폼을 얼리지 않고(Idle 상태) 대기하기.(TStopWatch 활용)

볼랜드포럼에 Firemonkey 포럼이 생겨서 기분이 좋습니다. 룰루랄라 합니다.


그래서 좋은 강좌를 남기고 싶은데 별로 아는게 없어서 쿨럭...

그래서 팁이라도 남깁니다.


이번에도 Unittest하며 필요해서 만들어 본것입니다.


OpenDialog를 열고 파일경로를 입력해서 파일을 선택하는 Test 작성 중

OpenDialog.execute하면 바로 열리지가 않죠?


그래서 열릴때까지 대기를 해야 합니다.

Sleep을 주었지요. 하지만 Sleep이 제어권을 놓지 않아 Sleep이 끝나고 창이 열립니다.


그래서 좀 쉬며 기다리게 하려고 봤더니

Firemonkey에서는 GetTickCount 등을 WinAPI를 사용하면 안되지요.

그래서 찾은 놈이 StopWatch입니다.


아래는 제어권을 갖지 않고 대기하는 코드입니다.


uses
  System.Diagnostics;

procedure TTestLib.Delay(ms: Integer);
var
  StopWatch: TStopWatch;
begin
  StopWatch := TStopWatch.Create;

  StopWatch.Start;
  repeat
    Application.ProcessMessages;
    Sleep(1);
  until StopWatch.ElapsedMilliseconds >= ms;
end;


감사합니다. 끝~