Thread Rating:
  • 469 Vote(s) - 2.85 Average
  • 1
  • 2
  • 3
  • 4
  • 5
KeyPressの制限
09-12-2012, 11:06 AM, (This post was last modified: 09-12-2012, 11:08 AM by battiruno.)
#1
KeyPressの制限
こんにちわ。

TextFieldなどのコントロールでKeyPressイベントを行っているのですが、

たとえば、TextField(以後TF)に何か入力してEnterを押したとします。

TFの処理内容は、TFの内容チェックと変換、最後にAfterを使って次のフォーカス場所にBecome-activeをしています

設定でEnterの動作はTabと同じ設定にしておりますので次のフォーカスに移動します。



通常ならそうなのですが、

TF1に入力し、Enterを押すところを連打します。

するとTF1→TF2→TF3とフォーカスが移るはずなのですが、その最後のBecome-activeが処理されて

あたかもTF3からTF2へフォーカスが巻き戻ったかのように見えてしまいます。



初めはAfterが悪さしているのかと思いAfterを外し、試験的に処理内にSleepを入れ疑似的に処理を重くして

実験してみたのですが、やはり巻き戻ってしまします。



自分の考えでは、Enterを押した処理中は他のキー操作を受け付けないようにしたいのですが

そのようなことはできるのでしょうか?

もしくは、巻き戻りを解消する方法はありますでしょうか?
09-18-2012, 05:41 PM,
#2
RE: KeyPressの制限

サンプルがあるでしょうか?どんな処理があって、何に影響されているか、コードがあると分かりやすいと思います。

09-26-2012, 06:25 PM,
#3
RE: KeyPressの制限
heavybugtracker様

ご返信頂いていたのに返事が遅れてしまい申し訳ありません。

サンプルは用意できなかったのですが、お聞きしたい事が大まかにまとまったので・・・

・methodが完結するまでキー入力を一切受け付けなくしたい。({after 0s do}も含める)

・上記が無理であれば、methodと{after 0s do}の間を限りなくゼロにしたい。

この2点は可能でしょうか?よろしくお願い致します。
10-02-2012, 08:37 PM,
#4
RE: KeyPressの制限
回答が遅くなり、すみません。。。
シンプルですが、解決できるかもしれませんので、次の方法で試してみたらどうでしょうか?

1. keypress でEnter検出、Enterキーなら
2. {set TF.enabled = false}
 3. {dispatch-events true}
3. 旧TF処理
4. {set TF.enabled = true}
10-03-2012, 10:00 AM,
#5
RE: KeyPressの制限
heavybugtracker様

ご回答ありがとうございます。

提示して頂いた方法はまだ試した事がないので、組み込んでみたいと思います。

お忙しい中ありがとうございました。

また何かあれば、よろしくお願い致します。

Forum Jump:


Users browsing this thread:
1 Guest(s)

MyBB SQL Error

MyBB has experienced an internal SQL error and cannot continue.

SQL Error:
1017 - Can't find file: 'mybb_threadviews' (errno: 2)
Query:
INSERT INTO mybb_threadviews (tid) VALUES('624')