ご質問させていただきます。
画面には2つのTextFlowBox(TextFlowBox1、TextFlowBox2)と、テンキーの様なボタンと、実行ボタンを配置しています。
テンキーボタンをタップした際に事前に選択していたTextFlowBoxにテンキーの値を転記し、各TextFlowBoxへの値の入力が
完了したら実行ボタンをタップし、各TextFlowBoxに入力された値をローカルストレージに格納し、別の画面に遷移する画面を
開発しています。
質問① 各TextFlowBoxに入力した値を変数に格納後、実行ボタンをタップした際にローカルストレージのテーブルに
Insertしたいのですが、各TextFlowBoxに入力した値を変数に格納するにはどの様にすればよいでしょうか。
質問② TextFlowBox1を選択後、テンキーボタンをタップした際に、TextFlowBox1にタップしたテンキーの数字を
表示するにはどの様にすればよいでしょうか。(カーソルの情報を保存しておく必要がありそうなのですが、コーディングが
わかりません)
質問③ 各TextFlowBoxにはテンキーボタンより複数の数字を入力したい場合、TextFlowBoxに数字を追加する方法を
教えてください。また、テンキーにはBSボタンもあり、BSボタンタップ時にTextFlowBox内の最後尾の1文字のみを削除する
方法も教えてください。
初歩的な質問で恐縮ですが、ご教授の程よろしくお願いします。
TextFlowBoxの入力データ取得等について
質問を正しく読み取れていないかもしれませんが…
質問①
TextFlowBoxのなかのテキストを取り出して、set 式で別の変数に代入という流れになると思います
(TextFlowBoxのなかのテキストを取り出すには get-text メソッドが用意されています)
def tfb = {TextFlowBox "test"} || "text"の文字が入ったTextFlowBox
let dst-str:String = "" || 代入先の変数宣言
set dst-str = {tfb.get-text}
※代入などの構文は下記参照
Curlドキュメント > Curl開発者ガイド > 基本概念 - 構文 > 基本的な構文 > 式 > 変数の使用
Curlドキュメント > Curl開発者ガイド > 基本概念 - 構文 > 式 > 代入ステートメント
質問②
TextFlowBoxにつけたタップのイベントハンドラで最後にタップしたTextFlowBoxを変数に記録しておく
のが一番簡単な気がします。
ただ、Caedeなら画面内にボタンをつくらずにソフトウェアキーボードを使うことにして、TextFlowBox
でなくコントロールのTextFieldを使った方が楽かもしれません。
(TextFieldなら質問③も選択してソフトウェアキーボードから連続して数字を入力すると後ろに続けて入力されます)
タップなどCaedeの機能については「General Caede questions」で聞くとより詳しいことがきけるかも
しれません。
Curl Global Community / Discussions / General Caede questions
http://communities.curl.com/forumdisplay.php?fid=23
質問③
数字を追加する場合は、既に入力されている文字列に追加する数字の文字列を連結した後にset、
(※訂正、TextFlowBox はaddだけで追加できました)
削除時は、substrメソッドを使用して最後尾1文字前までの文字列を取得してsetとなると思います。
質問①
TextFlowBoxのなかのテキストを取り出して、set 式で別の変数に代入という流れになると思います
(TextFlowBoxのなかのテキストを取り出すには get-text メソッドが用意されています)
def tfb = {TextFlowBox "test"} || "text"の文字が入ったTextFlowBox
let dst-str:String = "" || 代入先の変数宣言
set dst-str = {tfb.get-text}
※代入などの構文は下記参照
Curlドキュメント > Curl開発者ガイド > 基本概念 - 構文 > 基本的な構文 > 式 > 変数の使用
Curlドキュメント > Curl開発者ガイド > 基本概念 - 構文 > 式 > 代入ステートメント
質問②
TextFlowBoxにつけたタップのイベントハンドラで最後にタップしたTextFlowBoxを変数に記録しておく
のが一番簡単な気がします。
ただ、Caedeなら画面内にボタンをつくらずにソフトウェアキーボードを使うことにして、TextFlowBox
でなくコントロールのTextFieldを使った方が楽かもしれません。
(TextFieldなら質問③も選択してソフトウェアキーボードから連続して数字を入力すると後ろに続けて入力されます)
タップなどCaedeの機能については「General Caede questions」で聞くとより詳しいことがきけるかも
しれません。
Curl Global Community / Discussions / General Caede questions
http://communities.curl.com/forumdisplay.php?fid=23
質問③
数字を追加する場合は、既に入力されている文字列に追加する数字の文字列を連結した後にset、
(※訂正、TextFlowBox はaddだけで追加できました)
削除時は、substrメソッドを使用して最後尾1文字前までの文字列を取得してsetとなると思います。
Code:
{def tfb = {TextFlowBox "1"}}
{def cb-add = {CommandButton label = "add 1"}}
{def cb-del = {CommandButton label = "del"}}
|| 後ろに"1"を追加
{cb-add.add-event-handler
{on Action do
|| 訂正 [[
||def v = {tfb.get-text}
||{tfb.clear}
||{tfb.add
|| v & "1"
||}
|| 訂正 ][
|| これだけでOK
{tfb.add "1"}
|| 訂正 ]]
}
}
|| 後ろ一文字削除
{cb-del.add-event-handler
{on Action do
def v = {tfb.get-text}
def len = v.size
{if len > 0 then
{tfb.clear}
{tfb.add
{v.substr 0, (len - 1)}
}
}
}
}ご回答ありがとうございます。
TextFieldを使って無事値を取得することが出来ました。
ご教授ありがとうございました。
TextFieldを使って無事値を取得することが出来ました。
ご教授ありがとうございました。