 | | Wide Studio Programmer's Guide
| |
タイマを利用するには
タイマオブジェクトを利用すると、一定期間後の処理や、一定間隔のインターバルで
の処理を行うことができます。
タイマクラス | インスタンスアクセス関数 |
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;
//一定期間後に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.00 For Use with Wide Studio Release 3.00, Summper 2002 Wide Stuido Home | Up to Copyright(C) T. Hirabayashi, 1999-2002 | | Last modified: June 10, 2002 | |