日本語プログラミング言語なでしこの公式掲示板

なでしこ の 掲示板

トップ 新規 検索

2017-07-17 12:15:05

Re③:グリッドの編集

雪乃☆雫 さん

 コードを見ても今ひとつ何をどのようにしたいのかがよく分かんないのでアレなんですけど・・・
 「矢印で移動したところ列(列を表示)と実際の場所(画面でのカーソル現在地)とがあってない」とゆうことはないハズです。
 考えられるコトとの第一としては、矢印キーでセルの移動を行った場合、「キー押した時」のイベントで「列を表示」すると、移動前の列が表示されちゃうってゆう意味でしょうか。これは、バグではなく仕様と思った方がよいでしょう。
 「キー離した時」のタイミングで列の表示を行えばOKですよ。

 第二に、載せてくださったコードでは、キー押した時のイベントの中で、列をプラスしたりマイナスしたりされてますケド、これはよろしくありません。
 だって、もともと矢印キーに、グリッドのセルを進めたり戻したりする機能があるんだから、これをやるとセルが二個飛んじゃったりとかしちゃわないですかね?
 しかも、このようにしていると、編集をオンにした場合、矢印キーにはセルの移動だけではなく、データの内容を編集するためにカーソルを動かしたりする役割もあるわけなので、そこでもいろいろとおかしなコトになっちゃいますよね?
 (・・・それで、グリッドではなくフォームのイベントを使おうとしている?????)

 このコードで、最終的にいったい何がどのようになるようにしたいのかについてのご説明が無いと、これ以上はなんとも;;;

こんにちは、今回お世話になっています。
いろいろテストしているので、ちょっと解りにくいかもしれませんが、該当の場所のソースを書き込みましたので、良きアドバイスお願いします。
 原料更新グリッドについて
   編集はオン
   自身に注目            
   アイテムは、原料更新データ     
   原料更新フォームを表示
   原料更新フォームのキー押した時は~
     もし、(自身→押された仮想キー=27)ならば
        自身→押されたキー=空
        原料更新フォームを閉じる
                           
     違えば
        もし、(自身→押された仮想キー=13)ならば
           もし、(原料更新グリッドの列<項目数)ならば
              もし、原料更新グリッドの列=0ならば
                 XEREAに0を代入
                 属性テーブル[XEREA]をキー属性に代入
              ここまで   
              原料更新グリッドの列=原料更新グリッドの列+1
           違えば           
              原料更新グリッドの列=0
              属性テーブル[XEREA]をキー属性に代入
           ここまで

           「{原料更新グリッドの列}」をXEREAに代入
           「キー属性={キー属性}、属性テーブル{XEREA}={属性テーブル[XEREA]}」を言う              
           もし、属性テーブル[XEREA]<>キー属性ならば
#              『{IME}』をキー送信
              属性テーブル[XEREA]をキー属性に代入
           ここまで                 
           原料更新グリッドのセルサイズ自動調節
        違えば
########### 矢印処理 ###########
           もし、(自身→押された仮想キー=37)ならば
               もし、(原料更新グリッドの列>0)ならば
#                     「計算前={原料更新グリッドの列}」を言う
                 原料更新グリッドの列=原料更新グリッドの列-1
#                 「計算後={原料更新グリッドの列}」を言う    
              違えば
                 原料更新グリッドの列=項目数           
              ここまで

              「{原料更新グリッドの列}」をXEREAに代入
              「キー属性={キー属性}、属性テーブル{XEREA}={属性テーブル[XEREA]}」を言う              
              もし、属性テーブル[XEREA]<>キー属性ならば
                 『{IME}』をキー送信
                 属性テーブル[XEREA]をキー属性に代入
              ここまで
           違えば
              もし、(自身→押された仮想キー=39)ならば
                  もし、(原料更新グリッドの列<項目数)ならば
                    もし、原料更新グリッドの列=0ならば
                       XEREAに0を代入
                       属性テーブル[XEREA]をキー属性に代入
                    ここまで
                    原料更新グリッドの列=原料更新グリッドの列+1   
                 違えば
                    原料更新グリッドの列=0
                    XEREAに0を代入           
                    属性テーブル[XEREA]をキー属性に代入
                 ここまで
                 「原料更新グリッドの列={原料更新グリッドの列}」を言う
                 「{原料更新グリッドの列}」をXEREAに代入
#              「キー属性={キー属性}、属性テーブル[XEREA]={属性テーブル[XEREA]}」を言う              
                 もし、属性テーブル[XEREA]<>キー属性ならば
                    『{IME}』をキー送信
                    属性テーブル[XEREA]をキー属性に代入
                 ここまで
#                 もし、原料更新グリッドの列<>0ならば
#                    原料更新グリッドの列=原料更新グリッドの列-1
#                 ここまで                    
              ここまで
           ここまで                                     
        ここまで
     ここまで


(編集パスワード送信)

子記事

親記事 (No.188)
返信した記事(元) (No.210)

この内容(No.219)に返信

この内容(No.219)をダウンロード

この内容(No.219)のテキスト表示





www.eznavi.net