WideStudio/MWT Logo
WideStudio/MWT
Programming Guide
WideStudio/MWT 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;
  //一定期間後に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.90 for WideStudio/MWT ver 3.90, Jul 2005


WideStudio/MWT documents index | 目次

Copyright(C) WideStudio/MWT Development Team, 1999-2005 Last modified: Jul 31, 2005