Wide Studio Programmer's Guide

Wide Studio Home
Up to


タイマを利用するには

タイマオブジェクトを利用すると、一定期間後の処理や、一定間隔のインターバルで の処理を行うことができます。
タイマクラス インスタンスアクセス関数
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