Timerを止めるには


タイマー  2004-10-28 02:56:48  No: 11549

OnTimerのイベントを50ミリ秒ごとに繰り返し、
ストップボタンを押したときにイベントを止めたいと考えています。
しかしストップボタンを押したときに
Timer1.Enabled := False;
としても、イベントが止まってくれません。
どうすればよいのでしょうか?
どなたか教えてください。お願いします。


HOta  2004-10-28 05:15:41  No: 11550

タイマーさん
>OnTimerのイベントを50ミリ秒ごとに繰り返し、
これでは、他のイベントの入る隙間がないのでは?


ふぐちゃん  2004-10-28 05:36:08  No: 11551

ずいぶん前のことですが、TTimerのIntervalを100ミリ秒以下にすると
正常に動作しなくなることがあるという情報を見たことがあります。
マルチメディアタイマーの使用を検討されてはいかがですか?


にしの  2004-10-28 18:24:57  No: 11552

OnTimerイベントで、
Application.ProcessMessages;
を実行しておけば止まるかと思います。
ただ、タイマは53ms以下は取得できなかったはず(win9x系だけかも)ですので、ふぐちゃんさんの言うようにマルチメディアタイマを使用するか、スレッドにしたほうがよろしいかと思います。


タイマー  2004-10-30 04:30:12  No: 11553

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

さらにお聞きしたいのですが、マルチメディアタイマを使用すると
HOtaさんがおっしゃったような”他のイベントの入る隙間がない”状態を
回避することができるのでしょうか?

またにしのさんに伺いたいのですが、
Application.ProcessMessages;は
OnTimerの最後に入れればよいのでしょうか?

何度も質問して申し訳ありませんが、よろしくお願いいたします。


ねぎ  2004-11-06 01:09:51  No: 11554

マルチメディアタイマって、
Delphi6に対応しているやつもありますか?


LupinⅢ  URL  2004-11-06 01:32:33  No: 11555

Application.ProcessMessagesはどの位置でも良いと思います。

[下記ヘルプから引用]
ProcessMessages メソッドは,アプリケーションがメッセージキューを処理できるよう,その実行を一時的に停止します。


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

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






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