WideStudio Programming Guide

| WideStudio Programming Guide | WideStudio Index 目次

> ## タイマを利用するには

> タイマオブジェクトを利用すると、一定期間後の処理や、一定間隔のインター バルでの処理を行うことができます。

> タイマクラス | インスタンスアクセス関数
> 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() 関数には、タイマから起動されて実行したい処理を記述し ます。triggerHahdler() 関数に、データを与えたい場合、addTriggerProc() の第３引数に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 | 目次

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