[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2006/12/19(Tue) 15:11
投稿者名:saku
Eメール:
URL :
タイトル:
イベント割り込みについて
お世話になります。

イベント割り込みを行う場合、DoEventsを使用して待ちイベントを実行しますが、
DoEvents以外で同じような事ができるような処理はありますでしょうか?

WindowsAPI等のVB以外の外部ライブラリを使用してというと範囲が広いので、
VBで用意されている処理の中でご存知であれば教えて頂けますでしょうか?

よろしくお願いします。

投稿時間:2006/12/20(Wed) 11:18
投稿者名:K.J.K.
Eメール:
URL :
タイトル:
Re: イベント割り込みについて
> イベント割り込みを行う場合、DoEventsを使用して待ちイベントを実行しますが、

本当にそうでしょうか?
特定のプロシージャの中でループを回すのではなく、そのプロシージャ
からすぐに抜け出すような構造にすべきなのでは。

投稿時間:2006/12/20(Wed) 20:29
投稿者名:saku
Eメール:
URL :
タイトル:
Re^2: イベント割り込みについて
返答ありがとうございます。

> > イベント割り込みを行う場合、DoEventsを使用して待ちイベントを実行しますが、
>
> 本当にそうでしょうか?
> 特定のプロシージャの中でループを回すのではなく、そのプロシージャ
> からすぐに抜け出すような構造にすべきなのでは。
指摘して頂きありがたいですが、指摘内容は「イベント割りこみをするな」と
受け取りました。
今回は「イベント割り込みを行う」前提でDoEvents以外の方法があるか
質問させて頂いております。

よろしくお願いします。

投稿時間:2006/12/20(Wed) 23:54
投稿者名:K.J.K.
Eメール:
URL :
タイトル:
Re: イベント割り込みについて
> 今回は「イベント割り込みを行う」前提でDoEvents以外の方法があるか
> 質問させて頂いております。

それしかないと決めかかっていいものなのでしょうか?
一般論としてしか質問なされていないようですが、まず少なくとも
ループでイベントを待つのは望ましからぬ方法であるとされています。
そうしなければならない理由があるのでしょうか?

また、もしそうしなければならない場合、なぜDoEventsだといけない
のでしょうか?

投稿時間:2006/12/21(Thu) 09:52
投稿者名:saku
Eメール:
URL :
タイトル:
Re^2: イベント割り込みについて
> > 今回は「イベント割り込みを行う」前提でDoEvents以外の方法があるか
> > 質問させて頂いております。
>
> それしかないと決めかかっていいものなのでしょうか?
> 一般論としてしか質問なされていないようですが、まず少なくとも
> ループでイベントを待つのは望ましからぬ方法であるとされています。
> そうしなければならない理由があるのでしょうか?
>
> また、もしそうしなければならない場合、なぜDoEventsだといけない
> のでしょうか?
ループでイベントを待つような処理をしているとは言っておりません。
実際、そんな処理はしておりません。
単純にイベント割り込みを行う方法がDoEvents以外であるかという質問です。
DoEventsでないといけないわけではなくて、それ以外に手段があるか知りたいだけです。

投稿時間:2006/12/21(Thu) 10:04
投稿者名:K.J.K.
Eメール:
URL :
タイトル:
Re: イベント割り込みについて
> 単純にイベント割り込みを行う方法がDoEvents以外であるかという質問です。
> DoEventsでないといけないわけではなくて、それ以外に手段があるか知りたいだけです。

そもそも、どういうイベントプロシージャ中で、どのイベントが発生することを
期待しているのでしょうか? ウィンドウメッセージが元になっているものなのか
どうか、またそうである場合にもその具体的なウィンドウメッセージの種類に
よっても、回答は変わってきますよね。

また既存のDoEventsに不満があるというのならば、それをいくらかは解消する
方法を模索し提示することもできるでしょうが、ただ一般論として提示されても
何を答えるべきかが見えません。

投稿時間:2006/12/21(Thu) 10:32
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re^2: イベント割り込みについて
> また既存のDoEventsに不満があるというのならば、
「DoEventsでないといけないわけではない」
「それ以外に手段があるか知りたい」
という事なので、(不満云々ではなく)単なる技術的好奇心だけのような気も。


で、DoEvents の(戻り値によるフォーム数カウントではなく)メッセージループ処理についてのみ
見た場合、おそらく「代替となる同等機能は存在しない」という事になるのでは無いでしょうか。
今回の前提条件では、API 等については一切考慮せず、VBで用意されている機能だけに
着目するという事でしたし。

まぁ、"待ちイベントを実行"、"イベント割り込み" が、具体的にどのような状況を指し示して
いるのか不明なので、一般論として答えるのは難しい気はしますけれどね。

投稿時間:2006/12/21(Thu) 10:56
投稿者名:K.J.K.
Eメール:
URL :
タイトル:
Re: イベント割り込みについて
> で、DoEvents の(戻り値によるフォーム数カウントではなく)メッセージループ処理に
> ついてのみ見た場合、おそらく「代替となる同等機能は存在しない」という事になる
> のでは無いでしょうか。

単にDoEventsと置き換えて使うようなステートメントなどの提示を求めていた
としたら、それは「DoEventsは使用禁止」という条件がない限り無意味な質問ですよね。

そういう論理の上で考えれば、DoEventsを用いない場合にはどのようにコードを
組み立てるのか、が問題にならないといけません。さもなければ、質問者が
自己矛盾を起こしていることになります。

投稿時間:2006/12/25(Mon) 15:21
投稿者名:saku
Eメール:
URL :
タイトル:
Re^2: イベント割り込みについて
返答が遅れてしまい申し訳ありません。

>>魔界の仮面弁士様
> で、DoEvents の(戻り値によるフォーム数カウントではなく)メッセージループ処理についてのみ
> 見た場合、おそらく「代替となる同等機能は存在しない」という事になるのでは無いでしょうか。
> 今回の前提条件では、API 等については一切考慮せず、VBで用意されている機能だけに
> 着目するという事でしたし。
私が質問したかったのは上記の通りです。
ありがとうございます。

>>K.J.K様
> 単にDoEventsと置き換えて使うようなステートメントなどの提示を求めていた
> としたら、それは「DoEventsは使用禁止」という条件がない限り無意味な質問ですよね。
最初に「DoEvents以外で」と書いていたので上記の条件を
提示したつもりでした。
申し訳ありません。

> そういう論理の上で考えれば、DoEventsを用いない場合にはどのようにコードを
> 組み立てるのか、が問題にならないといけません。さもなければ、質問者が
> 自己矛盾を起こしていることになります。
今回の質問で知りたかった理由は単なる興味だったので。
なので具体的にコードを提示することはできませんでした。
説明不足でしたでしょうか?
申し訳ありません。

皆様、回答ありがとうございました。