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


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

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

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

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

#----------------------------------------------------------
#Function for the event procedure
#----------------------------------------------------------
import mwt

def event_procedure(object):
  #インスタンスへアクセス
  object.setProperty("labelString","HELLO WORLD"); 

mwt.WSGFfunctionRegister("event_procedure",event_procedure)

object 変数がそのクライアントインスタンスを格納する変数です。 このインスタンスに対して操作を行う場合、この object に対して 使用したい API を呼び出します。

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

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

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

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

#----------------------------------------------------------
#Function for the event procedure
#----------------------------------------------------------
import mwt

def event_procedure(object):

  # インスタンス管理によるインスタンスの取得(その1)
  obj = mwt.WSGIappObjectList().getInstance(
               "WSCvlabel",       # ラベルクラス
               "newvlab_001");    # newvlab_001 という名称

  # 得られたラベルに対するアクセス
  obj.setProperty("labelString","HELLO WORLD"); 

  # インスタンス管理によるインスタンスの取得(その2)
  obj2 = mwt.WSGIappObjectList().getInstance(
               "WSCbase",      # どのクラスかを特定しない
               "newvlab_002"); # newvlab_002 という名称

  # 得られたラベルに対するアクセス
  obj2.setProperty("labelString","HELLO WORLD"); 

mwt.WSGFfunctionRegister("event_procedure",event_procedure)

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

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

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

#----------------------------------------------------------
#Function for the event procedure
#----------------------------------------------------------
import mwt
import newwin000

def event_procedure(object):
  # newvlab_001 に対して直接アクセス
  newwin000.newvlab_001.setProperty("labelString","HELLO WORLD"); 

mwt.WSGFfunctionRegister("event_procedure",event_procedure)


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