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

컴포넌트/라이브러리
Delphi/C++Builder Programming Components&Libraries
[25] Multimedia Timer component
박지훈.임프 [cbuilder] 10082 읽음    1999-09-13 00:00
임펠리테리입니다.

멀티미디어 타이머입니다. 방금 하이텔의 비주얼툴 동호회(vtool)에 들렀다가 거기서
이상찬님(id:지최멋건)님이 올려놓으신 멀티미디어 타이머를 발견했습니다.
물론 멀티미디어 타이머가 이것뿐인 것은 아닙니다만, 그래도 기왕이면 국산(!!)을 애용하자는
뜻으로.. ^^

잘 이해를 못하시는 분들을 위해 멀티미디어 타이머에 대해 잠깐 설명을 드려야겠죠?
빌더의 기본 TTimer 컴퍼넌트는 interval을 1/1000초 단위로 설정할 수 있게 되어있지만,
실제로는 그정도의 간격으로 이벤트가 발생하지는 않습니다. 이것은 빌더의 잘못이 아니라,
윈도우즈의 기본 타이머 api 자체가 1tck(1/18초) 단위밖에 지원을 하지 못하기 때문입니다.
만약 그 이상의 정확도로 타이밍을 해야 한다면, 해결책은 단 하나, 윈도우즈의 멀티미디어
dll에 숨겨져 있는 멀티미디어 타이머 api를 사용해야 합니다. 이것은 MS에서 동영상 처리를
위해서만 사용하도록 고의적으로 숨겨놓은 것입니다.

이상찬님의 타이머 컴퍼넌트는 바로 이 멀티미디어 타이머를 vcl로 구현한 것입니다.
이러한 사실은 작년 초쯤에 윈도우즈 프로그래머들 사이에서 이슈가 되었었고, 당연히
이상찬님의 컴퍼넌트 외에도 비슷한 컴퍼넌트가 많이 공개되어 있습니다.

이 컴퍼넌트는 Q/A에 올라온 전종욱님의 질문에 대해 답변의 의미로서 올리는 것입니다.
사실 1/18초 이상의 타이밍을 해야 할 경우는 특수한 경우가 아니라면 그리 많지 않습니다.
단순한 시계 프로그램을 하나 만드는데 이런 컴퍼넌트를 쓴다면 컴퓨터가 상당히 괴로워할 겁니다.
1/1000초 단위로 이벤트가 실행된다는 것은 cpu에게는 상당한 고문이니까요.

그럼 도움되시길...

+ -

관련 글 리스트
25 Multimedia Timer component 박지훈.임프 10082 1999/09/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.