時間稼ぎするには?

解決


チャーミ  2002-09-11 20:50:26  No: 104888

あるプログラムから次のプログラムにすぐに移って欲しくない為に時間稼ぎをしたいのですが。タイマーの使い方が解りません。ヘルプを見たのですがよくわかりませんでした。あまりに初心者すぎてごめんなさい。


さわ  2002-09-11 21:14:28  No: 104889

別プログラムに遷移するまでの間
イベントキューを破棄するなら?
ApiのSleepでスレッド待機の方が簡単ですよ。
コントロール張る必要もないですし。。
タイマーについてはどの変がわからないのか
教えてもらえますか?


チャーミ  2002-09-11 22:48:45  No: 104890

さわさんありがとうございます。具体的にはタイマーに時間(100ms)をセットしてその時間経過後に次の処理をしたいのです。この時間内には他に実行するプログラムはないので単にタイマーが進んでいればいいのですが・・。つまりタイマーセットもタイムアップ後の受け取り方もわからないのです。Timer1.Enabled = True
Timer1.Interval = 100
では100msのインターバルをセットしただけですよね・・・。よろしくお願い致します。


さわ  2002-09-11 23:41:18  No: 104891

ちょっとタイマーコントロールの仕様を勘違いしているようです。。
タイマーで設定したインターバルは
非同期でカウントされるのでスレッドは止まりません。
インターバルの時間が経つたびにイベントを通知してくれるだったと思います
のでタイマーを使うのなら?(お勧めではないですが)
プログラムの実行をタイマーのイベント通知にコーディングして
タイマーをキックしてからイベントが通知されるまで待つ?
というロジックになってしまいます。
解りにくいかも知れませんが?どうですか?


さわ  2002-09-11 23:47:55  No: 104892

ちなみに通知されるのはTimerってイベントです。
次の処理を行うまで待機するなら
↓のApi関数をモジュールレベル?プログラムレベルでもいいので定義すれば
Private Declare Sub Sleep Lib "kernel32" & _
        Alias "Sleep" (ByVal dwMilliseconds As Long)

call Sleep(100)で0.1秒?止まってくれますよ


チャーミ  2002-09-12 00:46:38  No: 104893

さわさんありがとうございます。
一つ前のメールの「非同期でカウントされるのでスレッドは止まりません」
は理解できました。
最後のメールで具体的なご回答(文例)を出していただいたのですが・・
このプロシージャは貼り付けると赤字になるという事は前処理が必要ですね。
関数の勉強不足の私には理解できません。
このモジュールの前処理は何が欠けてるのでしょうか?
ご面倒おかけします。


さわ  2002-09-12 00:50:44  No: 104894

失礼しました。。
Private Declare Sub Sleep Lib _
        "kernel32" (ByVal dwMilliseconds As Long)
& ←は余計でした。。


チャーミ  2002-09-12 01:53:03  No: 104895

さわさん、ありがとうございました。
タイマーが効いています。動きました。
Private Declare Sub Sleep Lib _
        "kernel32" (ByVal dwMilliseconds As Long)
がなんだかわからないままに???。。
ヘルプを見ていった位では理解出来ないレベルですね。高度過ぎて!
御手隙きの時で結構ですので簡単な解説を、宜しくお願い致します。
お世話になりました。本当に有難う御座いました。


Say  2002-09-12 02:25:12  No: 104896

>Private Declare Sub Sleep Lib _
>        "kernel32" (ByVal dwMilliseconds As Long)
>がなんだかわからないままに???。。

APIです。プラットフォームSDKに載ってます。
APIのサンプルは、vbvbvb.comに1000以上あります。

また、Declare宣言は、APIビューアで知ることができます。


チャーミ  2002-09-12 03:20:45  No: 104897

Sayさん、ありがとうございました。
日々の積み重ねが大事ですね。
早速勉強します。。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加