Q&A

  • 타이머에서 문제가 있어욤..도와주세요..
안녕하십니까..

델파이 5를 사용하고, 접한지는 3주정도 됩니다.

다름이 아니오라 프로그램을 돌리면 타이머에서 멈추어버립니다. 아주가끔요..

머리에 쥐내릴려고 합니다..하다하다 안되어서 이렇게 질문을 드립니다.

아무래도 에러그림하고 소스하고 올려야 할것 같은데... 소스가 좀 지저분해서^^;;

꼭 멈추는 위치는 TsFadeTimer.Timer안에서 멈추는데..다시또 F9를 누르면 동작은 합니다..ㅠㅠ

이유라도 좀 알려주시면 감사하겠습니다.

에러그림이 있는 엑셀파일과 소스파일을 참고로 첨부하겠습니다.

고수님들의 한수 가르침을 부탁드립니다.
1  COMMENTS
  • Profile
    jj 2007.06.29 11:07


    첨부 파일을 보왔는데요 역시 보기가 힘드네요  ㅎㅎ

    제 소견으로는 timer 이벤트가 작동중일때 그 이벤트가 끝나지도 않는 상태에서
    또 다시 timer 이벤트가 실행이 되어서 생기는 현상이 아닌가 하네요...

    (타이머가 시간(10초 마다 작동된다는 과정)이 되었을때 timer 이벤트를 실행하는데 그 이벤트가 5초안에 끝난다고 할때가 걸리다고 할때 컴퓨터의 상태에 따라서 10초 안에 이벤트안에 있는 내용을 다 끝마치고 나가지 못할때 또 다시 이벤트가 실행이 될수 있습니다.)

    조치로는 timer이벤트에 현재 timer이벤트가 실행 되고 있는지 체크 할수 있는 전역번수를 추가하여 ~~
    procedure xxxxx.timer 이벤트;
    begin

        if gbTimerExec then exit;           // 타이머 이벤트가 실행중이라면 exit 나간다 (이중 실행 방지)

        gbTimerExec := true;    // 타이머 실행중

        .......... 기존 소스 ...............

        gbTimerExec := false;  // 타이머 종료

    end;

    도움이 되었으면 하네요~~~

    그럼 오늘도 조은 하루 되세요~~~ ^^