| WideStudio Programming Guide | WideStudio Index Table of contents

> ## 使用计时器

> 通过计时器对象，可以在一段时间后或每隔一定时间执行指定的操作。

> 计时器类 | 函数
> WSDtimer | WSGIappTimer()

> ## 在一段时间后执行指定的操作

> 如果想在一段时间后执行指定的操作，首先，准备好通过计时器启动的计时器处理函数。 然后，在计时器对象中登录计时器处理函数。

> 计时器登录成员函数 | 功能
> addTriggerProc() | 登录计时器处理函数
> delTriggerProc() | 删除计时器处理函数

>     #include <WSDtimer.h>
>     //计时器启动处理函数的例子
>     void triggerHandler(unsigned char clock,void* data){
>        //clock：以250ms 为单位增加的计时器设置
>        //data：计时器登录时传递的数据

>        //用户指定的处理...
>     }

>     void event_procedure(WSCbase* obj){
>       //下面指定的数据，将被传递给计时器处理函数。
>       void*  data = (void*)1234;
>       //在计时器中登录一段时间后执行的处理函数 //1000ms后启动
>       long id = WSGIappTimer()->addTriggerProc( triggerHandler,WS1000MS,data );
>       //中途停止计时器
>       WSGIappTimer()->delTriggerProc( id );
>     }

> triggerHandler() 函数中记载了当被计时器启动时所需要执行的处理。 通过addTriggerProc()函数的第三个参数void*向triggerHahdler()函数 传递数据。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() 函数中记载了当被计时器启动时所需要执行的处理。 通过addTimerProc() 函数的第三个参数void*向timerHandler()函数 传递数据。addTimerProc() 函数返回计时器处理函数的ID。如果需要终止 计时器处理函数，在delTimerProc()中指定相应的ID。
> 与事件处理不同是，计时器处理函数不会调用更新对象处理。如果变更了 对象属性值等，通过调用update()函数更新对象绘图。 指定的时间间隔（WS250MS，WS500MS，WS750MS等）以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, May 2004

WideStudio documents index | Table of contents

Copyright(C) WideStudio Development Team, 1999-2004 | Last modified: May 25, 2004