Thread Rating:
  • 446 Vote(s) - 2.92 Average
  • 1
  • 2
  • 3
  • 4
  • 5
複合コントロールのコンストラクタ
04-03-2013, 04:39 PM,
#1
複合コントロールのコンストラクタ
ファイル参照用のコントロールとして、下記のようなファイルパスを表示するTextFieldと、
ファイルダイアログを表示するCommandButton を持つHBox を作成しようと思います。

Code:
{define-class public FileBox {inherits Frame}
  field tf:TextField
  field cb:CommandButton
  {constructor public {default ...}
    {construct-super.Frame {splice ...}}
    set self.tf = {TextField {splice ...}}
    set self.cb =
        {CommandButton
            label = "参照",
            {on Action do
                {if-non-null u = {choose-file} then
                    set self.tf.value = u.full-filename
                }
            }
        }
    {self.add {HBox self.tf, self.cb} }
  }
  {getter public {value}:String
    {return self.tf.value}
  }
}
{def fb = {FileBox width = 4in }}
{value fb}

現在は、残余引数をすべて親クラスの Frame のコンストラクタに渡しているので、
たとえば、vstretch? を指定すると TextField のコンストラクタでエラーになり、
editable? を指定すると、Frame のコンストラクタでエラーになります。
これを回避したいです。

つまり、FileBox のインスタンス作成時の引数として指定されたもののなかで、
HBox のオプションとして有効なものはHBoxに、
TextField のオプションとして有効なものはTextField のコンストラクタに渡したいです。

TextField、HBox それぞのオプションを明記し、それぞれ個別に指定するようなコーディングはしたくありません。
このようなことは可能でしょうか。



Messages In This Thread
複合コントロールのコンストラクタ - by umemura - 04-03-2013, 04:39 PM
Forum Jump:


Users browsing this thread:
1 Guest(s)

MyBB SQL Error

MyBB has experienced an internal SQL error and cannot continue.

SQL Error:
1017 - Can't find file: 'mybb_threadviews' (errno: 2)
Query:
INSERT INTO mybb_threadviews (tid) VALUES('883')