Thread Rating:
  • 326 Vote(s) - 2.72 Average
  • 1
  • 2
  • 3
  • 4
  • 5
オプションの監視について
01-17-2012, 08:00 PM,
#1
オプションの監視について
あるインスタンスの、ある値の「変更」を監視したい場合、どのような方法がありますか?

目的はデバッグではなく、たとえば、あるCommandButton の enabled? をfalse にした際、
監視していたそのボタンのラベル自身が、自分の表示文字を切り替える、というような場合を考えています。

Observerを利用したり、コマンドボタンの継承クラスに同様の機能を実装することができることは理解していますが、
今回の目的は、既存のコードになるべく影響を出さないように、継承クラスなどはつくら渦に実現できればと思っています。

言い換えると、on-action などのイベントと同じように、「enable? の値が変わったら」という記述方法があるか、
というイメージになります。

register-options を利用して、下記のようなコードで実現できるのではと予想したのですが、
監視するオプションの指定方法が分かりません。

Code:
{def cb:CommandButton = {CommandButton label =  "押せます"}}
{do
{cb.register-options
   {proc { [CommandButton の enabeld? のオプションキー]:}void
        {if enabled? == true then
              set cb.label = "押せます"
          else
              set cb.label = "押せません"
         }
    }
}
{value cb}

{CheckButton
{on ValueChanged at chb:CheckButton do
     set cb.enabled? = chb.value
   }
}






Messages In This Thread
オプションの監視について - by umemura - 01-17-2012, 08:00 PM
RE: オプションの監視について - by c-s - 01-18-2012, 11:10 AM
Forum Jump:


Users browsing this thread:
4 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('391')