WideStudio/MWT Logo
WideStudio/MWT
Programming Guide
WideStudio/MWT Index
目次


インスタンスにアクセスするには

ウィンドウ上に配置された部品をインスタンスと呼びます。 イベントプロシージャにおいて、インスタンスにアクセスすることは最も基本的で重要なな事柄です。ここでは主に用いられるインスタンスへのアクセス方法を説明します。

プロシージャ関数に渡される引数によるアクセス

イベントプロシージャに渡される引数を利用すると、イベントプロシージャが貼られているクライアントインスタンスにアクセスすることができます。

void event_procedure(WSCbase* object){
  //インスタンスへアクセス
  object->setProperty(WSNlabelString,"HELLO WORLD"); 
}

object ポインタがそのクライアントに対する WSCbase* ポインタです。 WSCbase クラスのAPIを利用できますが、派生クラスのAPIを利用したい 場合は、クラスポインタの取得の節を参照下さい。

インスタンス管理を利用したアクセス

インスタンス管理インスタンス(ロードモジュールにつき、一つ存在)に対し て要求すると、アクセスしたいインスタンスを取得することができます。外 部変数アクセス(下記参照)の場合と異なり、コンパイル時にシンボルのリン クをを伴いません。したがって、画面の構成によらない柔軟なプログラムを 行うことができます。

インスタンス管理クラス インスタンス取得関数
WSCbaseList WSCbaseList* WSGIappObjectList()

アクセスしたいインスタンスの取得は、次の様に行います。

#include <WSCbaseList.h> //WSGIappObjectList() にアクセスする...
...
void event_procedure(WSCbase* object){

  //インスタンス管理による WSCbase ポインタの取得(その1)
  char* class_name = "WSCvlabel"; //ラベルクラス
  char* obj_name   = "newvlab_001";     //newvlab_001 という名称
  WSCbase* obj = WSGIappObjectList()->getInstance(class_name,obj_name);

  //WSCbase* クラスポインタによるラベルに対するアクセス
  obj->setProperty(WSNlabelString,"HELLO WORLD"); 

  //インスタンス管理による WSCbase ポインタの取得(その2)
  char* class_name2 = "WSCbase";  //どのクラスかを特定しない
  char* obj_name2   = "newvlab_002";     //newvlab_002 という名称
  WSCbase* obj2 = WSGIappObjectList()->getInstance(class_name2,obj_name2);

  //WSCbase* クラスポインタによるラベルに対するアクセス
  obj2->setProperty(WSNlabelString,"HELLO WORLD"); 
}

obj もしくは obj2 がアクセスしたいインスタンスです。クラス名称とオブ ジェクト名称を引数にします。もしクラス名を特定したくない場合は、 "WSCbase" を与えてください。この場合はすべてのインスタンスが検索対象 となります。

外部変数による直接アクセス

インスタンスを外部変数参照定義すると、外部変数としてアクセスできます。 外部変数定義は、アプリケーションビルダユーザーズガイドの [外部変数として可能なインスタンスとするには]の節を参照下さい。

#include <WSCvlabel.h> //WSCvlabel クラスを直接触るので、インクルード。
...
void event_procedure(WSCbase* object){
  //外部変数の extern 宣言
  extern WSCvlabel* newvlab_001;

  //WSCvlabel* クラスの newvlab_001 に対するアクセス
  newvlab_001->setProperty(WSNlabelString,"HELLO WORLD"); 
}


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