Curl Global Community
ValueFineshed 発生直前の値 - 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: ValueFineshed 発生直前の値 (/showthread.php?tid=866)



ValueFineshed 発生直前の値 - umemura - 03-07-2013

TextField にある値が入力された際に値のチェックを行い、
ある条件の場合に、変更前の値に表示を戻したいです。

変更前の値を簡単に取得するには、どうすればよいですか?

value セッター が呼ばれるたびに、値を保持する方法しかないでしょうか。

undo メソッドが使えるかと思いましたが、スタック数の問題もあり、確実ではないと思っています。

Code:
{curl 8.0 applet}
{curl-file-attributes character-encoding = "utf8"}
{applet manifest = "manifest.mcurl",
{compiler-directives careful? = true}
}
「0」 が入力されたら、「変更前の値」をポップアップする
{def tf =
    {TextField
        {on ValueFinished at tf:TextField do
            {if tf.value == "0" then
                {tf.undo}
                def val = tf.value
                {popup-message "「0」が入力されたので、変更前の「" & val & "」に戻しました。"}
            }
        }
    }
}
{value tf}
{CommandButton
    label = "set-value-with-events \"test\"",
    {on Action do
        {tf.set-value-with-events "evnets test"}
    }
}
{CommandButton
    label = "set-value-with-events \"0\"",
    {on Action do
        {tf.set-value-with-events "0"}
    }
}
{CommandButton
    label = "set .value \"test\"",
    {on Action do
       set tf.value = ".value test"
    }
}
{CommandButton
    label = "set .value \"0\"",
    {on Action do
        set tf.value = "0"
    }
}