Q7:「数値を取得する」と「表示された文字列を取得」がありますが、数値=表示される文字が同じになるのは、アクション(エンター入力)後になりますか?
Q7-1:
数値入力フィールドコンポーネントについて、「数値を取得する」と「表示された文字列を取得」がありますが、数値=表示される文字が同じになるのは、アクション(エンター入力)後になりますか?
たとえば、初期化(0クリア)したいときは、
数値を設定する・・・0
表示したい文字列設定・・・0
と両方のメソッドを実行する必要がありますでしょうか?
A7-1:
MZPlatform2.4では、メソッド「数値を設定する(Object)<引数:固定値:0>」を実行すると表示文字列も「0」になるので『初期化(0クリア)』を目的とする場合には、このメソッドを実行するだけで結構です。
(ver2.2以前は「数値を設定する(Object)」で引数を固定値とすることができなかったので、テキストでは主に「表示したい文字列を設定した後、その文字列で値を確定する(String)」を使っています。こちらのメソッドでも結構です)
以下余分な情報となってしまいますが、[数値入力フィールド]に入力された文字列の値確定のタイミングはフィールド内でEnterキーが押された時、またはフォーカスが失われた時です。
Enterキーを押してもフォーカスが移動していない場合には、値確定後も見た目には変わったようにならず、特に入力した値が不正なものであった場合は、この時点では確定した数値と表示文字列の値は違う可能性があります。
フォーカスを失った後の動作はFocusLostBehaviorのモードにより以下のように変わります。
0:値を確定。確定できない場合でも表示はそのまま
1:値を確定。確定できない場合は現在の値に表示を変更。デフォルト値
2:現在の値に表示を変更
3:表示されている文字列のまま(値は確定されない)
さらに「文字列を取得する」で得られる文字列は表示形式を含んだものですので、桁区切りや最大桁数などを設定した場合には、表示される文字列の値と確定している値は違ったものになる可能性があります。
例えば、小数部分の最大桁数を「2」とし、設定した値が「1.2345」の時、「数値を取得する()」の返値は「1.2345」「表示されている文字列を取得する()」の返値は「1.23」となります。