手作りコンボボックス


ふつうのコンボボックスを使えばいいのに
わざわざ使わないのには理由があるのサ

コンボボックスのイベントハンドラenteredで、エンターだっつってるにも関わらず
キーボードEnterでは呼び出されない
項目名の編集で即効性がイマイチだったり
この辺りをふつうのEditTextとListBoxで解決したのが
手作りコンボボックス

といっても大した事をした訳じゃない

●ロールアウト部

editText edt1 “” pos:[8,6] width:124 height:16
 listBox lbx1 “” pos:[12,24] width:120 height:8 items:#(“a”,”b”,”c”)

注意点は、editTextの高さを16以上の値で設定しない事
16以上だとEnterを改行と受け取ってしまうようですね

●イベント部分

 on lbx1 selected sel do edt1.text = lbx1.selected
 on edt1 entered strTm do
 (
 if (str != “” and lbx1.items.count != 0) then
 (
  lbx1.selected = str
  print edt1.text
 );–if end
 );–end
 on edt1 changed strTm do
 (
 if (str != “” and lbx1.items.count != 0) then
 (
  lbx1.selected = str
  lbx1.items = lbx1.items
  lbx1.selection = lbx1.selection
  edt1.text = str
 );–if end
 );–end

 on rol open do
 (
 try(edt1.text = lbx1.selected)catch()
 )

空の時にテキストが入らないようにIfで叩く
そのあとは、こう、なんかごちゃごちゃテキストを入れたりする

これで、即効性のあるテキスト編集が出来る
ふつうのコンボボックスとの違いは、項目を選んでもテキストはハイライトされないのよ
でも、個人的にはこっちの方が好き