■15128 / ResNo.3) |
Re[3]: 指定の文字数を入力したとき自動でタブ
|
□投稿者/ ONnoji -(2025/10/10(Fri) 14:42:56)
| > 今現在、1→エンター(次のボックスへ)2→エンター(次のボックスへ)・・としているところ、 > 1→2→3と入力するだけで次々とテキストボックスにタブオーダーの順に入力していきたいです。 > 入力する数値は1〜4の変数で半角数字です。
フォームの[テキストボックス]オブジェクトの属性には、[最大何文字まで]のような設定は見当たらないですね。
> VBAにおける「AutoTab」のような機能はありますでしょうか。
桐には似たような機能はなさそうですね。(T_T)
◇ ◇ ◇ ◇ ◇ ◇
さて、[テキストボックス]オブジェクトの属性では出来ませんけれど、
試したところ、[フォーム(.wfx)+イベント処理(.kex]の[イベント駆動]のプログラミングでは可能でした。
(例)
手続き定義開始 txtVariablDim1::編集文字列変更() 変数宣言 自動,整数{ &length } 変数宣言 自動,整数{ &return }
メソッド呼び出し 戻り値 = &return, &this.編集文字列長( &length ) トレース出力 "編集文字列長" トレース出力 _&return トレース出力 _&length
if ( &length >= 1 ) メソッド呼び出し 戻り値 = &return @txtVariablDim2.フォーカス設定() トレース出力 "フォーカス設定" トレース出力 _&return end
手続き定義終了
添付ファイルは数日を目途に削除しますので、ダウンロードはお早めに願います。
■AutoTabみたいな.wfx
フォーム ├ ファミリ ├ ワークスペース ├ フォーム操作バー ├ フォームヘッダ部 │ └ txtタイトル └ フォーム明細部 ├ txtVariablDim1 │ └ lbl1 ├ txtVariablDim2 │ └ lbl2 ├ txtVariablDim3 │ └ lbl3 ├ txtVariablDim4 │ └ lbl4 └ txtVariablDim5 └ lbl5
◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇
なお、[桐 - ヘルプ]の[フォーカス設定]メソッドの項の[ノート]によると、
[編集文字列変更]イベントハンドラ内では実行できないという記載があります。
しかし、実際には実行出来て、[入力後]イベントハンドラと絡めても問題なく動作していますので、
[桐 - ヘルプ]の説明が誤っているか、ヘルプ執筆後に桐のバージョンアップの際に仕様が変更された可能性が高いです。
以下にトレース出力の例を示します。
┌when 手続き"txtVariablDim1::編集文字列変更( )"を実行開始しました │ │ :編集文字列長 │ :&return : 1 │ :&length : 1 │ │┌when 手続き"txtVariablDim1::入力後("1",1,0)"を実行開始しました ││ ││ :&入力継続 : 1 ││ │└end │ │ :フォーカス設定 │ :&return : 0 │ └end
┌when 手続き"txtVariablDim1::編集文字列変更( )"を実行開始しました │ │ :編集文字列長 │ :&return : 1 │ :&length : 1 │ │┌when 手続き"txtVariablDim1::入力後("1",1,0)"を実行開始しました ││ ││ :&入力継続 : 0 ││ │└end │ │ :フォーカス設定 │ :&return : 1 │ └end
↑ 以上のこのように、正しくハンドリングしているので、桐10s以降の仕様変更の可能性が高いです。
本件はK3殿に照会中です。
p.s.
[フォーム(.wfx)+イベント処理(.kex]の[イベント駆動]のプログラミングに関しては、拙作:webサイトを参考にしてください。
こちら ↓ 桐の釣魚大全 https://silicon7565.cloudfree.jp/
桐の釣魚大全のトップ > 新 フォームアプリケーション入門 §1 https://silicon7565.cloudfree.jp/primer/primer_section_01.html
桐の釣魚大全のトップ > フォームアプリケーション教書 第1部 https://silicon7565.cloudfree.jp/guide/guide_Part1.htm
|
|