過去の桐井戸端BBS (桐ver.8)
18734 一覧表フォームで訂正モードのまま↑や↓を使ってレコードのジャンプをしたい 磯田 2003/01/26-16:47
いつもお世話になります。桐v8SP6です。
表形式編集で更新モードにあるときに編集の行を移動するにはSHIFT+↑又は↓で可能ですが、
これをフォームの一覧表上でイベントを使って↑や↓のみで実現させられないかと考えています。

キーダウンイベントを使うところまではわかるのですが、その後のジャンプコマンドは表示モードでしか使用できないので、
悩んでいるところです。
ひとつの可能性としては、キーダウンイベント"↓"又は"↑"でメソッド呼び出し
編集モード設定で、一旦表示モードに戻る。
→ジャンプコマンドで前行又は次行に移動。
→再びメソッド呼び出し 編集モード設定で訂正モードに入る。
といったことは考えられますが、どうもスマートではありません。
何かいい方法がありましたら、お知恵をお貸し下さい。
18735 Re:訂正モードでのジャンプ 通りすがり 2003/01/26-19:15
記事番号18734へのコメント
>編集モード設定で、一旦表示モードに戻る。
コマンドボタンでの「次行」へのジャンプにおいては、訂正モードでも大丈夫です。
キーダウンイベントから、このコマンドボタンを直接実行するようにイベントを組めば実現可能か。
ただ、表示モードでは、純粋に「↑↓」キーを拾いますので、
むしろ表示モードでこのイベントをキャンセルさせます。

18740 Re:訂正モードでのジャンプ 磯田 2003/01/27-14:26
記事番号18735へのコメント
通りすがりさんありがとうございます。
なるほど、その方法がありましたか。
それだったら、動きもスムーズですね。
しかし、コマンドボタンの機能と一括処理コマンドは、異種なもののようですね。
18746 Re:訂正モードでのジャンプ 通りすがり 2003/01/27-19:38
記事番号18740へのコメント
>コマンドボタンの機能と一括処理コマンドは、異種なもののようですね。
それはわかりませんが・・・。訂正モードでも、SHIFT+hogehogeキーでカーソルが移動できるので、
このコマンドボタンでの動作ははそちらの機能ではないのでしょうかね?
良くは分かりません。

もっとスマートなイベント処理だけでの方法・・・・、どなたか知りませんか?

ついでに、磯田さん、解決しましたら、そのイベントなり方法をフィードバックしてください。
次の方の資産になります。
(自己レス要望!!)
18747 Re:訂正モードでのジャンプ うにん 2003/01/27-21:02
記事番号18746へのコメント
なるほど、ボタンだとできますね〜。

>>コマンドボタンの機能と一括処理コマンドは、異種なもののようですね。
>それはわかりませんが・・・。訂正モードでも、SHIFT+hogehogeキーでカーソルが移動
>できるので、このコマンドボタンでの動作ははそちらの機能ではないのでしょうか
>ね?

訂正モード中に別の項目or行に移動するのは、SHIFTでなくCTRLでは?

それはともかく、一旦表示モードに戻して移動してから訂正モードに戻っても別にふとっちょ(?)な気はしませんが。
どうやっても複数の行が同時に訂正状態になるわけではないので、
内部的な動作は同じだと思うのですが。(余分なイベントとか発生してますかね?)

18749 Re:訂正モードでのジャンプ 悲しげ 2003/01/27-21:39
記事番号18747へのコメント
余談ながら、

>訂正モード中に別の項目or行に移動するのは、SHIFTでなくCTRLでは?

これはですね、桐のキーカスタマイズ/特殊キーの構成で、
標準の構成だとCtrl+矢印、桐v5互換ならShift+矢印でおます。

18750 Re:訂正モードでのジャンプ 磯田 2003/01/27-22:22
記事番号18746へのコメント
通りすがりさんは>ついでに、磯田さん、解決しましたら、そのイベントなり方法をフィードバックして
>ください。次の方の資産になります。
>(自己レス要望!!)

うまくいきました!

フォームの作業領域に非表示でb前行とb次行というコマンドボタンをつくり、
それぞれ ジャンプ 前行
     ジャンプ 次行
というパラメーターをつけます。そしてイベントファイルで

手続き定義開始 フォーム::キーダウン(長整数 &仮想キーコード,長整数 &スキャンコード,
長整数 &フラグ,参照 長整数 &処理中止)
 変数宣言 整数,固有{&更新モード}
 メソッド呼び出し @フォーム.更新モード取得(&更新モード)
 条件(&更新モード<>0 .and &仮想キーコード=38) メソッド呼び出し @b前行.実行()
 条件(&更新モード<>0 .and &仮想キーコード=40) メソッド呼び出し @b次行.実行()
手続き定義終了

とすれば、まったくスムーズに訂正状態のままカーソルがレコード間を移動します。
これが、一番シンプルな方法のような気がします。
18751 Re:訂正モードでのジャンプ うにん 2003/01/27-23:14
記事番号18750へのコメント
最終行や先頭行にいるときに、その次の行に移動しないようにした方がいいですよね。

18752 Re:訂正モードでのジャンプ うにん 2003/01/27-23:30
記事番号18749へのコメント
>これはですね、桐のキーカスタマイズ/特殊キーの構成で、
>標準の構成だとCtrl+矢印、桐v5互換ならShift+矢印でおます。

あらら、そうでしたか。桐5互換が多数派なのかな(^^;

戻る