YKLook説明書 YKLook用アプリの製作 インスタンス変数の使い方 前へ   次へ
   

インスタンス変数の使い方




登録・セッション管理対象にする

最初の画面構築(yki_make_display())からその後のイベント処理、あるいは、前のイベント処理から次のイベント処理というように、それぞれの処理をまたがって同じインスタンス変数を参照しその内容を共有したいときは、YKLookMain クラスの yk_var() メソッドを使ってそのインスタンス変数名を YKLook に登録してください。

YKLook では、この唯一の登録処理により、プログラム製作者が複雑なイベント間のセッション管理をすることもなく、Webアプリでもスタンドアロンでも区別なくGUIプログラムを作れるようにしています。

使い方はとても簡単です。
セッション管理対象にしたいインスタンス変数名を、このメソッドの引数に指定するだけです。
一度指定すれば、それ以降ずっとそのインスタンス変数はセッション管理対象となり、変数の内容が変わればその内容が自動的に維持されます。

このメソッドは、 yki_make_display() の中で使うことが多いです。

def yki_make_display()

    ... 他の処理 ...

    gui.yk_set_listener( 'fn_callback' )
    @data01 = [ 123, 456, 789 ]
    @data02 = { 'key01' => 'abc', 'key02' => 'xyz' }
    yk_var( '@data01' )
    yk_var( '@data02' )
end

def fn_callback( prm_event )
    val = @data01[ 2 ]         # val は 789
    val = @data02[ 'key01' ]   # val は 'abc'

    ... 他の処理 ...

end

YKLook の現在のバージョンでは、スタンドアロンでプログラムを起動するときは yk_var() を使わなくても問題なく動作します。
しかし、これは現在の YKLook の実装方法がそうなっているだけで、仕様上は yk_var() を使うことが前提になっています。
いずれにしても、Webアプリとして起動するときは、必ず yk_var() を使ってください。


セッション管理対象にできるオブジェクト

セッション管理対象のインスタンス変数に代入可能なオブジェクトは、下記のいずれかのクラスに限ります。
Array の要素や、Hash のキーと値も、上記のクラスに限ります。
その範囲内であれば ArrayHash を入れ子にしたり組み合わせることもできます。
厳密には、Ruby の組み込み Marshal 機能でシリアライズが可能な オブジェクトである限り、セッション管理対象にすることができます。


関連メソッド

yk_var() のほかに、以下のようなメソッドがあります。
詳細は クラス解説 YKLookMain で説明していますが、YKLook を初めてお使いになる方は気にせずにこのまま次の項目へお進みください。




   
YKLook説明書 YKLook用アプリの製作 インスタンス変数の使い方 前へ   次へ


Copyright (c) 2003-2010 YorozuKotowariYa Ltd.