YKLook説明書 GUIオブジェクト利用の手引き コンボボックス 前へ   次へ
   

コンボボックス


コンボボックスは、選択肢を表示・操作するGUIオブジェクトのひとつです。
詳細については クラス解説 YKLookComboBox をご覧ください。




表示

コンボボックスを表示するプログラム例です。

def yki_make_display()
    cmb = YKLookComboBox.new( ['項目1','項目2','項目3'] )
    cmb.yk_set_preferred_size( [160, nil], [160, 40] )
    pan = YKLookPanelFlow.new()
    pan.yk_add( cmb )
    yk_add( pan )
end

コンボボックスオブジェクトを生成した後に選択項目を指定したり追加・削除することもできます。
選択肢の任意の項目を選択状態にすることもできます。
このクラスのスーパークラスである YKLookComponent のメソッドを使って、フォント・色・有効か無効か・ツールチップ等の属性を指定することもできます。


状態の取得

コンボボックスの選択状態を取り出すプログラム例です。
「状態取得」ボタンを押すと、コンボボックスの状態を調べます。
メソッド yk_selected_item() を使います。

def yki_make_display()
    cmb = YKLookComboBox.new( ['項目1','項目2','項目3'] )
    cmb.yk_set_preferred_size( [160, nil], [160, 40] )
    btn = YKLookButton.new( '状態取得' )
    pan = YKLookPanelFlow.new()
    pan.yk_add( cmb )
    pan.yk_add( btn )
    yk_add( pan )
    cmb.yk_set_tag( 'combo' )
    btn.yk_set_listener( 'fn_callback' )
end
def fn_callback( prm_event )
    cmb = yk_look( 'combo' )
    obj = cmb.yk_selected_item()
    msg = '選択状態の項目は ' + obj.to_s() + ' です'
    yk_show_dialog_message( nil, msg )
end

上の例は、コンボボックスを参照するのにタグ名を使った例です。
下の例は、インスタンス変数を使った例です。

def yki_make_display()
    @cb = YKLookComboBox.new( ['項目1','項目2','項目3'] )
    @cb.yk_set_preferred_size( [160, nil], [160, 40] )
    btn = YKLookButton.new( '状態取得' )
    pan = YKLookPanelFlow.new()
    pan.yk_add( @cb )
    pan.yk_add( btn )
    yk_add( pan )
    yk_var( '@cb' )
    btn.yk_set_listener( 'fn_callback' )
end
def fn_callback( prm_event )
    obj = @cb.yk_selected_item()
    msg = '選択状態の項目は ' + obj.to_s() + ' です'
    yk_show_dialog_message( nil, msg )
end

メソッド yk_selected_index() を使って、インデックスを取得することもできます。


イベント

コンボボックスのイベントを処理するプログラム例です。
通常のボタンとは違い、コンボボックスのイベントを使うことはあまりありません。

def yki_make_display()
    cmb = YKLookComboBox.new( ['項目1','項目2','項目3'] )
    cmb.yk_set_preferred_size( [160, nil], [160, 40] )
    pan = YKLookPanelFlow.new()
    pan.yk_add( cmb )
    yk_add( pan )
    cmb.yk_set_listener( 'fn_callback' )
end
def fn_callback( prm_event )
    cmb = prm_event.yk_source()
    obj = cmb.yk_selected_item()
    msg = obj.to_s() + ' が選択されました'
    yk_show_dialog_message( nil, msg )
end

yk_set_listener() の引数に指定するメソッド名は任意ですが、名前の先頭が 'yk' で始まるものは指定できません。

コンボボックスのイベントは YKLookEventAction クラスのオブジェクトです。
詳細については クラス解説 YKLookEventAction をご覧ください。

イベント処理の基本は YKLook用アプリの製作 > イベント処理 をご覧ください。




   
YKLook説明書 GUIオブジェクト利用の手引き コンボボックス 前へ   次へ


Copyright (c) 2003-2010 YorozuKotowariYa Ltd.