メインコンテンツへスキップ

enter連打による必要以上のイベント実行

コメント

12件のコメント

  • ISHIJIMA

    質問なんですが

    連打でなくENTERを複数回押した場合に

    押した回数分画面を表示させたいという仕様なのでしょうか?

    連打なのか・押しっぱなしなのか・通常の入力なのかを判断できなければできない事なのではないでしょうか?

    そのあたりは判断できないのでは?

     

  • tanakata

    ISHIJIMAさん

    >押した回数分画面を表示させたいという仕様

    いいえ、何度押そうが一度だけ表示してほしいのです

    表示した後にサブタスク上で残りのenterが実行されるのは構いません。

     

    >連打なのか・押しっぱなしなのか・通常の入力なのかを判断できなければ

    >できない事なのではないでしょうか?

    >そのあたりは判断できないのでは?

    判断できなくても構わないと思います

    そもそもですが、どんな速度で何度押そうと

    一回目のenterでサブタスクをコールしている以上

    二回目以降のenterはコール先のサブタスク内で判断・実行されるべきものだと思っており

    親タスクに留まり実行されていることが解せません。

    一回目のenter処理中に次のenterが処理されているのも謎です(ウエイトもかけられませんし)

    これがシステムとして一般的な動きなのでしょうか?

  • ISHIJIMA

    私も同じような事を行っていると思いますが問題がないような気がします。

    もう少しどのように設定されているか教えていただけないでしょうか?

  • tanakata

    ISHIJIMAさん

     

    ●タスク1 

    ・タスクタイプ 

    リッチクライアント

    ・データビュー

    変数 項目名:伝票番号 数値 

    変数 項目名:助走用1 文字

    変数 項目名:助走用2 文字

    ・フォーム

    MDI調整 変数3つを伝票番号、助走用1、助走用2の順でエディットコントロールで配置

    ・ロジック

    イベントハンドラ 内部イベント・次項目 コントロール:助走用2  
     コール サブタスク タスク2
     
    ・タスク2

    タスクタイプ:リッチクライアント 

    データビュー:適当に

    フォーム:MDI調整 終了ボタンを配置(内部イベント終了)

     

    このプログラムで伝票番号からenterを押し続けて(押しっぱなし)タスク2に遷移しますと

    タスク2が二つ、三つ開きます。(PCの性能にもよるかもしれませんが)

    フラグ制御は効果がないようです。(項目更新・イベント経由で項目更新ともに)

     

    よろしくお願いします。 

     

     

     

  • ISHIJIMA

    この内容ですと正常な動きかもしれませんね

    MDIの場合このような画面の場合は一工夫が必要かもしれませんね・・・

    昔悩んだ記憶がありますが思い出したらまた投稿します。

  • tanakata

    お待ちしております。

    よろしくお願いします。

  • ISHIJIMA

    フラグの'FALSE'LOGの場所はサブタスクのタスク2のタスク後処理にしてみて下さい。

    MDIのタスクやプログラムをコールした後の下の処理はすぐに実行されてしまいます。

    この事を考えて作成しないといけないと思います。

    この辺りは慣れるまで結構悩むかもしれません。

  • tanakata

    変更してみました。

    確かにタスク2は一度しか開かなくなりました

    しかし、タスク2が起動した直後に、タスク1で2回目以降のenterの残骸が動作するため

    タスク2の上にタスク1が被ってしまい、タスク2の呼び出しが不可能になります。

     

  • ISHIJIMA

    イベントの条件ではなくてフラグの'TRUE'LOGの前にブロックの条件にしてみて下さい。

  • tanakata

    ISHIJIMAさん

     

    タスク2のタスク後にFALSE処理

    タスク1の次項目イベントのロジックの中にブロックif notフラグを設定したところ

    求めている動作となりました

     

    お手数をおかけしました

    ありがとうございました!

  • tanda

    キーボードキャッシュはあればあったで不便なところもありますし、なければないで不便なところもありますので難しいですね。

  • tanda

    失礼、キーボードキャッシュではなくて、キーボードバッファですね。

サインインしてコメントを残してください。