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
[1918] Re:또 시간 함수에 관련된 질문입니다.
박지훈.임프 [cbuilder] 3439 읽음    1999-09-10 00:00
: TTimer 컴포넌트에 관련된 질문입니다.
:
: Interval 프로퍼티에 값을 넣으면 그 값만큼의 시간 뒤에 메시지가 발생지요..
:
: 그런데 NT와 98에서 좀 차이가 나더군요.
:
: 시스템 사양에 따라 조금씩 다르지만
:
: NT에서는 Interval이 10(보통 10단위 이하의 값 차이는 무시되더군요)까지도 처리가 되는데,
:
: 98에서는 그 메시지들을 다 처리하지 못해서 Interval 값이 100을 넘겨야 겨우 처리되더군요.
:
: 원래 98에서 메시지의 처리가 늦는지 아니면 어떤 다른 문제가 있는지...
:
: 또, 그 해결방안을 아시면 설명을 부탁드립니다.
:



임펠리테리입니다.

원래 그렇습니다. ^^;;;;
TTimer 탓이 아니라, 윈도우즈의 타이밍 메시지 자체가 이론적인 값인 1/1000초 단위를
지원하지 않습니다. 실제로는 1 tick(1/18초) 단위입니다.
그래서 타이머에서 Interval을 1로 설정해도, 시스템에 따라
조금씩 다르기는 하겠지만,
1/1000초 단위로는 이벤트가 발생하지 못합니다.
그리고.. 98이 원래 느립니다. 그건 어쩔 수 없는 문제입니다. 메모리와 cpu속도를 더 늘려줘야
하는거죠.

해결하는 방법은 한가지 있습니다.
예전에 이런 타이머의 문제가 논란이 된적이 있습니다. 사실 윈도우즈의 표준 타이머는
1/18초밖에 지원하지 못하지만, 실제로 윈도우즈를 보면 이 이상의 속도로 처리하는
예를 몇군데에서 볼 수 있습니다. 대표적인 곳이 비디오 처리쪽이죠. 화면의
갱신 속도가 초당 30프레임 이상이 허다한데, 만약 여기에서 표준 타이머를
사용했다면 화면이 넘어가는 속도가 펄럭~펄럭~ 하고 보일겁니다.
여기에서 누군가가(외국의 누구였는데요. 이름은... ^^) 멀티미디어 처리 쪽을
뒤져보면 더 정확한 타이머가 있을거라고 착안한 겁니다. 물론 MS에서 공개를 안한
거였죠. 그리고.. 실제로 멀티미디어 관련의 dll중 하나에서 실제로 그 함수가
발견되었답니다.

지금은 이 사실은, 관심을 가지는 프로그래머라면 대부분이 알고 있는 것이 되었구요.
또 델파이나 빌더에서 사용할 수 있는 관련 서드파티 컴퍼넌트도 나와있는 걸로
알고 있습니다. 아마도 수퍼페이지에서 찾아보시면 쉽게 서너가지 정도는 발견하실 수
있겠네요. 수퍼페이지는 여기 제 홈페이지의 Links 페이지에서 찾아보실 수 있습니다.

그럼 참고하시길...

+ -

관련 글 리스트
1909 또 시간 함수에 관련된 질문입니다. 전종욱 3290 1999/09/07
1918     Re:또 시간 함수에 관련된 질문입니다. 박지훈.임프 3439 1999/09/10
1934         Re:Re:또 시간 함수에 관련된 질문입니다. 박지훈.임프 3370 1999/09/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.