![]() | Programming Guide | WideStudio/MWT Index 目次 |
インスタンスにアクセスするには
ウィンドウ上に配置された部品をインスタンスと呼びます。 イベントプロシージャにおいて、インスタンスにアクセスすることは、最も基本的で重要な事柄です。ここでは主に用いられるインスタンスへのアクセス方法を説明します。
- プロシージャ関数に渡される引数によるアクセス
プロシージャ関数に渡される引数によるアクセスは、 イベントプロシージャが貼られているクライアントインスタンスにアクセスする場合に利用します。- インスタンス管理を利用したアクセス
イベントプロシージャが貼られているクライアントインスタンス以外の他のインスタンスにアクセスする場合に利用します。 マイナス点としてインスタンスの検索に処理時間を必要とします。- 外部変数による直接アクセス
イベントプロシージャが貼られているクライアントインスタンス以外の他のインスタンスにアクセスする場合に利用します。 マイナス点としてイベントプロシージャの移植性の低下が挙げられます。プロシージャ関数に渡される引数によるアクセス
イベントプロシージャに渡される引数を利用すると、イベントプロシージャが貼られているクライアントインスタンスにアクセスすることができます。open Swig open Mwtlib let event_procedure obj = (* インスタンスへアクセス*) obj -> setProperty ("labelString","HELLO WORLD"); () let _ = Callback.register "event_procedure" event_procedureobj 変数がそのクライアントインスタンスを格納する変数です。 このインスタンスに対して操作を行う場合、この obj に対して 使用したい API を呼び出します。インスタンス管理を利用したアクセス
インスタンス管理インスタンス(ロードモジュールにつき、一つ存在)に対し て要求すると、アクセスしたいインスタンスを取得することができます。外 部変数アクセス(下記参照)の場合と異なり、コンパイル時にシンボルのリン クをを伴いません。したがって、画面の構成によらない柔軟なプログラムを 行うことができます。アクセスしたいインスタンスの取得は、次の様に行います。
インスタンス管理クラス インスタンス取得関数 WSDbaseList WSDbaseList _WSGIappObjectList'() open Swig open Mwtlib let event_procedure obj = (* インスタンス管理によるインスタンスの取得(その1) *) let instance = _WSGIappObjectList '() -> getInstance ( "WSCvlabel", (* ラベルクラス *) "newvlab_001") (* newvlab_001 という名称 *) in (* 得られたラベルに対するアクセス *) instance -> setProperty ( "labelString", "HELLO WORLD"); (* インスタンス管理によるインスタンスの取得(その2) *) let instance2 = _WSGIappObjectList '() -> getInstance ( "WSCbase", (* どのクラスかを特定しない *) "newvlab_002") (* newvlab_002 という名称 *) in (* 得られたラベルに対するアクセス *) instance2 -> setProperty ( "labelString", "HELLO WORLD"); () let _ = Callback.register "event_procedure" event_procedureobj もしくは obj2 がアクセスしたいインスタンスです。クラス名称とインスタンス 名称を引数にします。もしクラス名を特定したくない場合は、 "WSCbase" を与えてください。この場合はすべてのインスタンスが検索対象 となります。外部変数による直接アクセス
インスタンスを外部変数参照定義すると、外部変数としてアクセスできます。 外部変数定義は、アプリケーションビルダユーザーズガイドの [外部変数として可能なインスタンスとするには]の節を参照下さい。... let event_procedure obj = (* newvlab_001 に対して直接アクセス *) !newvlab_001 -> setProperty ("labelString","HELLO WORLD"); let _ = Callback.register "event_procedure" event_procedure
Copyright(C) WideStudio/MWT Development Team, 1999-2005 | Last modified: Jul 31, 2005 |