C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[35344] Re:타이머에 관하여
김상면 [windyboy] 1210 읽음    2004-06-03 11:02
SetTimer(Handle,1,1000,NULL);
를 윈도우가 생성 될때 호출하고   ( 메세지 받을 윈도우 핸들,타이머 구분자,발생간격, NULL)

첫번째 인수로 지정한 윈도우에 두번째 인자를 식별자로 하여 세번째 시간(밀리 세컨드)마다 네번째 함수를 실행 시킵니다. 하지만 이렇게 할 경우 클래스에 매핑 시키기가 곤란합니다. 그래서 보통 4번째 인자는 NULL로 하여 WM_TIMER메세지가 발생하게 합니다.

WM_TIMER  //
wParam 에 타이머 구분자가 날아 옵니다

프로그램에는 타이머를 여러개 만들수 있고 이 타이머들은 모두 동일한 WM_TIMER 메세지를 발생 시킬수 있습니다.
그래서 SetTimer에서 두번째로 준 구분자가 WPARAM에 넘어 오므로 이를 사용해서 어느 타이머인지 구분합니다.

KillTimer(Handle,1);  
를 윈도우가 소멸 되기 전에 호출   (메세지 받은 윈도우 핸들,타이머 구분자)

타이머가 필요 없으면 위와 같이 종료 합니다.



WM_TIMER메세지는 모두다 발생하지는 않습니다.
예를 들어 내컴퓨터가 1초에 한개의 윈도우 메세지를 처리할 능력이 있다고 합시당
타이머는 1/100초 마다 발생 시키도록 했다고 하고요.
일반적으로 생각하기엔 이렇게 하면 WM_TIMER메세지 때문에 프로그랭은 뻗어 버리거나 타이머 메세지만 처리 하다가 끝나 버릴겁니다.

하지만 이런 프로그램은 대체로 타이머 메세지 하나 처리 하고 다른 메세지 하나 처리 하고 ....이런씩으로 반복을 합니다. 왜냐하면 타이머 메세지는 메세지가 발생하면 응용 프로그램의 메세지 큐에 타이머 메세지가 있으면 그냥 사라집니다.(그냥 사라지는지 구 타이머 메시지를 새타이머 메세지로 바꾸는지 모르지만) 이점 유의 하시기 바랍니다.

타이머 부분은 함수의 인자만 봐도 해석 할 수 있으니 직접 도움말을 한번 보시기 바랍니다.
어차피 영어를 잘해도 컴퓨터 기본 지식이 있어야 되고 도움말을 읽어 본 경험이 있어야 도움말 보는 능력이 생기므로 영어 못한다 하지말고 이렇게 쉬운것 부터 보는 버릇 들이세요

그럼









오미미 님이 쓰신 글 :
: 답변 정말 감사합니다
: 타이머에 관해서 이야기를 하고자 합니다.
: 시간의 흐름에 따라 이미지가 움직에게 하고 싶은데 어떻게 해야 하나요
: 답변좀 부탁 드립니다.

+ -

관련 글 리스트
35341 타이머에 관하여 오미미 701 2004/06/03
35344     Re:타이머에 관하여 김상면 1210 2004/06/03
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.