Curl Global Community
ComboBoxのラベル表示 - Printable Version

+- Curl Global Community (https://communities.curl.com)
+-- Forum: Discussions (https://communities.curl.com/forumdisplay.php?fid=1)
+--- Forum: General Curl questions (https://communities.curl.com/forumdisplay.php?fid=2)
+--- Thread: ComboBoxのラベル表示 (/showthread.php?tid=412)



ComboBoxのラベル表示 - okm - 02-16-2012

こんにちは!

ComboBoxで、見た目のラベルと、実際の値と別のものを表示できると思うんですが、
実際ラベルが表示されるのはクリックしたListが表示されているときだけで、
Listを選択すると実際の値になってしまいますよね?

これって、選択してもラベルを表示させることは出来ないのでしょうか?


よろしくお願いいたします。


RE: ComboBoxのラベル表示 - usami - 02-17-2012

少々強引ですが、こんな感じでしょうか?
リストが選択されたら値を変数に保持し、unset-valueによってクリアさせて
選択された行に対するラベルを表示させています。
Code:
{def display:VBox = {VBox}}
{def model:DefaultListModel =
    {DefaultListModel
        "1", "2", "3"
    }
}
{def lb:ListBox =
    {ListBox
        "A","B","C"
    }
}
{let st:String = ""}
{Frame
    color = "black",
    {ComboBox
        control-appearance-changeable? = true,
        data-model = model,
        prompt = "select here",
        list-item-creation-proc =
            {proc {val:any}:ListItem
                {return
                    {ListValueItem
                        val,
                        label = lb[{val.to-int} - 1].value
                    }
                }
            },
        {on e:ValueFinished at cbo:ComboBox do
            set st = cbo.value
            {display.clear}
            {display.add {format "value: %s", st}}
            set cbo.prompt = lb[{cbo.value.to-int} - 1].value
            {cbo.unset-value}
            {e.consume}
        }
    }
}
{value display}



RE: ComboBoxのラベル表示 - okm - 02-20-2012

usamiさま

ありがとうございます!
う~ん、なるほど・・。
ComboBox.valueで値を取得するのはあきらめて・・ということですね。

ちなみに、値を変数に保持しているなら、ComboBoxのValueを書き換えたのでいいのでは?
と思ってしまうのですが、promptで表示させるのはなにか意味があるのですか?





RE: ComboBoxのラベル表示 - usami - 02-20-2012

unset-valueを実行すると選択した値がクリアされるため、
選択した値(1,2,3)を取得しないのであれば、変数に保持しておく必要はありません。
valueを書き換えたら表示も値(1,2,3)になるので、prompt(A,B,C)を書き換えてます。



RE: ComboBoxのラベル表示 - okm - 02-22-2012

usamiさま

なるほどー。
ありがとうございます。