Thread Rating:
  • 237 Vote(s) - 2.68 Average
  • 1
  • 2
  • 3
  • 4
  • 5
拡張クラスのローカルオプションについて
08-03-2011, 02:08 PM,
#1
Sad  拡張クラスのローカルオプションについて
拡張クラスをつくるときに、初期値を持ちながらスタイルシートを適応させたいのですが、
どのように実装すれば良いのか困っています。

現在、以下のような要件があります。
・引数で渡された値を有効とさせたい
・引数で値が渡されていなければ、スタイルシートを適応させたい
・上記2つとも設定されていないときには、初期値を有効とさせたい

local-optionを上書きして初期値を設定してみたのですが、
なぜか上書きした値が反映されず、スーパークラスの初期値が反映されているようです・・。
スタイルシートですべて指定しようか・・、という気持ちになりつつありますが・・。それも面倒です。。

ローカルオプションのオーバーライドはできないのでしょうか?
それとも、他に原因があるのでしょうか??



どなたか同じような問題に直面されてないですか??

よろしくお願いします。
Reply
08-05-2011, 09:17 AM,
#2
RE: 拡張クラスのローカルオプションについて
Curlヘルプドキュメントの定義でいう所のoption-valueは上書きできないかと思います。
Reply
11-29-2012, 05:34 PM, (This post was last modified: 12-03-2012, 11:10 AM by umemura.)
#3
RE: 拡張クラスのローカルオプションについて
たとえば、TextField のenabed? がfalse に設定された場合に、自動的にvalue に「無効」と挿入したい場合など、
オプションの設定に応じて処理を記述したい場合は、どのようにすればよいのでしょうか。

オプション変更イベントなどがあるのでしょうか。

それとも、絶対に不可能?
Reply
12-04-2012, 02:22 PM,
#4
RE: 拡張クラスのローカルオプションについて
OptionListInterface を継承しているコントロールなら、option-changed をオーバーライドして同様のことができそうですね。


■オプションの監視について
http://communities.curl.com/showthread.php?tid=391
Reply
12-06-2012, 05:05 PM,
#5
RE: 拡張クラスのローカルオプションについて
なんか小難しいことを考えているようですが単に↓のようにするだけではない?
Code:
{define-class MyTextField {inherits TextField}
  
  {nonlocal-option public enabled?:bool
    {if not enabled? then
        set self.value = "無効"
    }
  }
  
}

Reply
12-11-2012, 09:15 AM,
#6
RE: 拡張クラスのローカルオプションについて
ん?
オーバーライドできないって・・・。

あれ?
できるな。

いや、これでいいんです。これで。

あれぇ・・・?

Code:
{define-class public MyTextField {inherits TextField}
  {constructor public {default ...}
    {construct-super {splice ...}}
  }
  {nonlocal-option public enabled?:bool
    {if not enabled? then
        set self.value = "無効"
     else
        set  self.value = ""
    }
  }
  {local-option public editable?:bool
    {if not editable? then
        set self.value = "編集不可"
     else
        set  self.value = ""
    }
  }
}
{def tf = {MyTextField}}
{CheckButton
    label = "enabled?",
    value = true,
    {on ValueChanged at chkb:CheckButton do
        set tf.enabled? = chkb.value
    }
}
{CheckButton
    label = "editable?",
    value = true,
    {on ValueChanged at chkb:CheckButton do
        set tf.editable? = chkb.value
    }
}
{value tf}
Reply

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('183')