WideStudio Programming Guide

| WideStudio Programming Guide | WideStudio Index Table of contents

> ## 타이머를 사용하기에는

> 타이머 객체를 사용함으로서 일정시간 경과후의 처리나 일정시간간격의 처리를 실행할수있습니다.

> 타이머 클래스 | 인스턴스 접근(access) 함수
> WSDtimer | WSGIappTimer()

> ### 일정시간 경과후의 처리를 하기에는

> 일정시간 경과후의 처리를 하기에는, 우선 타이머에서 기동되여 처리를 실행하는 함수를 마련합니다. 다음에 타이머 객체에 대해서 트리거(trigger) 기동으로 그 실행 함수를 등록합니다.

> 타이머등록 멤버 함수 | 기능
> addTriggerProc() | 트리거(trigger) 기동등록 함수
> delTriggerProc() | 트리거(trigger) 기동 삭제 함수

>     #include <WSDtimer.h>
>     // 타이머에서 기동되는 처리 함수의 샘플
>     void triggerHandler(unsigned char clock,void* data){
>        //clock 는 250ms 마다 올라가는 카운트
>        //data 는 타이머등록할때 옮겨진 데이터

>        //여기서 타이머 처리를 한다...
>     }

>     void event_procedure(WSCbase* obj){
>       //여기서 지정된 데이터가 타이머 처리 함수에 옮겨진다.
>       void*  data = (void*)1234;
>       //일정시간 경과후에 1번 기동하는 타이머 함수의 등록  //1000ms 후에 기동
>       long id = WSGIappTimer()->addTriggerProc( triggerHandler,WS1000MS,data );
>       // 타이머를 도중에서 멈출 경우는
>       WSGIappTimer()->delTriggerProc( id );
>     }

> triggerHandler() 함수에는 타이머에서 기동되여 실행할 처리를 씁니다. triggerHahdler() 함수에 데이터를 줄 경우는 addTriggerProc() 의 제3인수에 void* 로 넘깁니다. addTriggerProc() 의 결과값은 타이머 처리의 ID 가 돌아옵니다. 혹시 그 타이머 처리를 멈출 경우는 delTriggerProc() 로 그 ID 를 지정합니다.
> 또한 이벤트 프로시저의 경우와 달리 타이머 처리 함수의 경우는 객체의 갱신 처리가 안불리기때문에 객체의 속성치등을 변경한 경우에는 update()를 불러 묘화 갱신을 해주세요.

>     // 타이머에서 기동되는 처리 함수의 샘플
>     void timerHandler(unsigned char clock,void* data){
>        WSCbase* object = (WSCbase*)data;
>        object->setProperty(WSNlabelString," 시간입니다");
>        object->update(); // 객체의 묘화 갱신
>     }

> ### 일정시간간격마다 처리를 하기에는

> 일정시간간격마다 처리를 하기에는 우선 타이머에서 기동되여 처리를 하는 함수를 마련합니다. 다음에 타이머 객체에 대해서 타이머 기동으로 그 실행 함수를 등록합니다.

> 타이머등록 멤버 함수 | 기능
> addTimerProc() | 타이머 기동등록 함수
> delTimerProc() | 타이머 기동 삭제 함수

>     #include <WSDtimer.h>
>     // 타이머에서 기동되는 처리 함수의 샘플
>     void timerHandler(unsigned char clock,void* data){
>        //clock 는 250ms 마다 올라가는 카운트
>        //data 는 타이머등록할때 옮겨진 데이터

>        //여기서 타이머 처리를 한다...
>     }

>     void event_procedure(WSCbase* obj){
>       //여기서 지정된 데이터가 타이머 처리 함수에 옮겨진다.
>       void*  data = (void*)1234;
>       //일정시간마다 기동되는 타이머 함수의 등록 //500ms 마다의 기동
>       long id = WSGIappTimer()->addTimerProc( timerHandler,WS500MS,data );
>       // 타이머를 도중에서 멈출 경우는
>       WSGIappTimer()->delTimerProc( id );
>     }

> timerHandler() 함수에는 타이머에서 기동되여 실행할 처리를 씁니다 timerHahdler() 함수에 데이터를 줄경우에는 addTimerProc() 의 제3 인수에 void* 로 넘깁니다. addTimerProc() 의 결과치는 타이머 처리의 ID 가 돌아옵니다. 혹시 그 타이머 처리를 멈출 경우에는 delTimerProc() 로 그 ID 를 지정합니다.
> 또한 이벤트 프로시저의 경우와 달리 타이머 처리 함수의 경우에는 객체의 갱신 처리가 안불리기때문레 객체의 속성치등을 변경한 경우에는 update()를 불러 묘화 갱신을 해주세요. 더구나 지정 할수있는 타이머의 간격은 WS250MS,WS500MS,WS750MS,WS1000MS,WS1250MS,... 등의 250ms 간격의 값입니다.

>     // 타이머에서 기동되는 처리 함수의 샘플
>     void timerHandler(unsigned char clock,void* data){
>        WSCbase* object = (WSCbase*)data;
>        object->setProperty(WSNlabelString," 시간입니다");
>        object->update(); // 객체의 묘화 갱신
>     }

Document Release 3.70 for WideStudio ver 3.70, Feb 2004

WideStudio documents index | Table of contents

Copyright(C) T. Hirabayashi, 2000-2004 | Last modified: Feb 25, 2004