Q2:数値入力フィールドとテキストフィールドの違いがイマイチ分かりません。「固定値」はいいとして、「メソッド戻り値」「イベント内包」「イベント」「メソッド処理結果」の使い分け方がどうしても分かりません。
Q2-1:
数字ボタンを押した時に、数値入力フィールドに数字を表示する部分ですが、チュートリアルに載っていたやり方は理解できます。
チュートリアルでは固定値に各数値を設定して表示していましたがメソッド戻り値にボタンコンポーネントを指定して、メソッドでボタンのテキストを取得するやり方も出来ました。同じ設定でコピー出来たのでこちらの方が楽かも、とか思いました。(これについてはただの報告です)
ここからさらに触っていて疑問に思ったことがあります。
例では「表示したい文字列を設定する」で文字列として数字を取得した後に、加算コンポーネントに数値として変換したあとに左右オペランドを設定しています。
数値入力フィールドという名前からここに表示されているものは数値だと思って、数値を取得し、加算コンポーネントでそのまま設定してから演算しようとしたら失敗しました。
数値フィールドというのは、中は文字列なので、加算コンポーネントのメソッドを利用する時に一度数値に変換しているということなのでしょうか?
数値入力フィールドとテキストフィールドの違いがイマイチ分かりません。<質問@>
そして、演算が終わったあとの表示についても質問があります。チュートリアルでは数値入力フィールドに「表示したい文字列を設定する」で「イベント内包」と「処理結果データ」で表示させていますが、「メソッド戻り値」と「加算」コンポーネントに、「演算結果」でも動きました。
いつも悩むのが「取得方法」の選択です。今回はなんとなく「メソッド処理結果」でも動くかな、と思って試しましたが、メソッド引数の設定が出てこなかったのでエラーとなりました。
「固定値」はいいとして、「メソッド戻り値」「イベント内包」「イベント」「メソッド処理結果」の使い分け方がどうしても分かりません。
簡単なサンプル等で、上手く使い分けの方法が分かるようなものは無いでしょうか?<質問A>
A2-1:
> ここからさらに触っていて疑問に思ったことがあります。
> 例では「表示したい文字列を設定する」で文字列として数字を取得した後に、加算コンポーネントに数値として変換したあとに左右オペランドを設定しています。
> 数値入力フィールドという名前からここに表示されているものは数値だと思って、数値を取得し、加算コンポーネントでそのまま設定してから演算しようとしたら失敗しました。
> 数値フィールドというのは、中は文字列なので、加算コンポーネントのメソッドを利用する時に一度数値に変換しているということなのでしょうか?
> 数値入力フィールドとテキストフィールドの違いがイマイチ分かりません。<質問@>
数値入力フィールドは、自分自身のデータとして、表示する文字列と数値データを持っています。例えば、数字を3桁ごとにカンマで区切って表示するように設定した状態で「1324」という数字を入力した場合、数値入力フィールドは"1,324"という表示文字列と、1324という数値データを持つことになります。
チュートリアルLesson.5の場合、「表示されている文字列を取得する()」メソッドを使っていますので、ここで取得されるものは数値データではなく文字列となり、数値に変換するという処理が必要になります。
> そして、演算が終わったあとの表示についても質問があります。
> チュートリアルでは数値入力フィールドに「表示したい文字列を設定する」で「イベント内包」と「処理結果データ」で表示させていますが、「メソッド戻り値」と「加算」コンポーネントに、「演算結果」でも動きました。
>
> いつも悩むのが「取得方法」の選択です。今回はなんとなく「メソッド処理結果」でも動くかな、と思って試しましたが、メソッド引数の設定が出てこなかったのでエラーとなりました。
>
> 「固定値」はいいとして、「メソッド戻り値」「イベント内包」「イベント」「メソッド処理結果」の使い分け方がどうしても分かりません。
>
> 簡単なサンプル等で、上手く使い分けの方法が分かるようなものは無いでしょうか?<質問A>
「上手い使い分け」あるいは「正しい使い分け」というものは特にございません。重要なのは、引数として与えるデータをどこから手に入れるかということですが、その方法が2つ以上ある場合には、どれを選んでも差し支えございません。
お試しになったように、加算結果は処理完了イベントの内包データとしても、また、「演算結果を取得する()」メソッドの戻り値としても手に入れることができます。どちらを選ぶかは、ご自身にとっての分かりやすさや、将来の修正のしやすさなどを基準にされるとよろしいかと存じます。