喫茶XRAYトップページ

[スレッド全体
]

[6407] Re13:Mouseメッセージの捕獲返信 削除
2012/9/24 (月) 00:27:20 snail3
▼ Mr.XRAYさん
 
> Application.ProcessMessages の使い方って,結構難しいですよね.
> これを入れないと,処理が飛ぶこともありますが.
> 一方で,挙動がおかしくなることがあります.
> 具体的な処理の内容によりますね.
>
> 今回の場合は,キューにたまっているのを処理してくれた,
> ということでしょう.Windows さんがまじめにやった,というこで...
> お許しください.


一件落着と思ったら、複雑怪奇。ゾンビのごとく復活してきます。
メインルーチンの ProcessMessages で WMParentNotify
が呼び出されてしまいます。(;_;)

[6408] Re14:Mouseメッセージの捕獲返信 削除
2012/9/24 (月) 01:06:03 snail3
▼ snail3さん

BlockInput 関数で囲んだらいい感じ。


http://mrxray.on.coocan.jp/Delphi/plSamples/840_CancellLockDisable.htm

ためになります。


[6410] Re15:Mouseメッセージの捕獲返信 削除
2012/9/24 (月) 07:41:00 Mr.XRAY
▼ snail3さん

「勝てば官軍,動けば正義」ということにしますか.

TApplication.ProcessMessages は,例えば,キーやフックで,処理コード
内でループしで処理すると,おかしな動作をしてしまうことがあります.
また,ファイルの一覧を取得する時に使用する,findfirst, findNext
のループで使用しても同様に,シェルの項目識別子を使用したファイル
情報取得のループ内でも同じですね.

TApplication.ProcessMessages はあくまでも,I/O 処理待ち用です.
Sleep(1) とか Sleep(10) なんてのもよく使用しますが,

あっ,思い出した.Sleep で,TApplication.ProcessMessagesとは違いますが
最近こんのながありました.
これは,Label の文字描画が終了しない内に,Sleep の処理に入って
しまうために,文字が描画更新されない,というものです.

http://www.freeml.com/delphi-users/2732/latest




[6438] Re16:Mouseメッセージの捕獲返信 削除
2012/10/4 (木) 20:03:22 snail3
▼ Mr.XRAYさん
▼ おかぽんさん

あれからもメインルーチンにある

 Application.ProcessMessages

で時々ゾンビが発生していまして、困っていました。

意味は全然わかっていないのですが

    Message.Value :=  0;  // ←これでイベントのループが消える?

を入れることで解決したようです。


[6439] Re17:Mouseメッセージの捕獲返信 削除
2012/10/5 (金) 10:23:52 Mr.XRAY
▼ snail3さん

苦労していますね.お疲れ様です.

>    Message.Value :=  0;  // ←これでイベントのループが消える?

これはメッセージなしにすることですね.なるほど,その手がありましたか.
これで何とか落ち着くといいですね.
無事を祈っています (^^;


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82