■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#13181-0時計が遅れてくる。とくめいくん2000-12-05(火) 09:14
     #13183-0RE#13181:時計が遅れてくる。よねKEN2000-12-05(火) 09:27
     #13184-0RE#13181:時計が遅れてくる。ゆう(U)2000-12-05(火) 09:29
     #13188-0RE#13184:時計が遅れてくる。匿名131882000-12-05(火) 10:38
     #13190-0RE#13188:時計が遅れてくる。よねKEN2000-12-05(火) 10:53
     #13192-0RE#13190:時計が遅れてくる。とくめいくん2000-12-05(火) 11:54
     #13193-0RE#13192:時計が遅れてくる。ゆう(U)2000-12-05(火) 12:39
     #13194-0RE#13193:時計が遅れてくる。とくめいくん2000-12-05(火) 14:24
#13181-0
時計が遅れてくる。
毎度、皆々様にはお世話になっております。m(__)m
早速ですが以下の問題について何かよい回避方法があればお教え願えないで
しょうか?

現在1分ごとにタイマーコントロールを使ってイベントを発生していますが
数時間動かしていると、だんだん時計が遅れてきます。24時間もほっとくと
2時間程遅れています。(T_T)
何ででしょうか?
すみませんが、よろしくお願いいたします。
(色々探してみたのですが、それらしき情報が見つけられませんでした。)

開発環境は
 WIN98SE
 VB5
です。
#13183-0
RE#13181:時計が遅れてくる。
> 毎度、皆々様にはお世話になっております。m(__)m
> 早速ですが以下の問題について何かよい回避方法があればお教え願えないで
> しょうか?
この話は過去ログにわんさかあります。もちろん回避法も。

> 現在1分ごとにタイマーコントロールを使ってイベントを発生していますが
> 数時間動かしていると、だんだん時計が遅れてきます。24時間もほっとくと
> 2時間程遅れています。(T_T)
> 何ででしょうか?
そういうものです。ヘルプにも書いてありますが、Timerイベントは正確に
一定時間でイベントが起きるものではありません。
だいたいXmsぐらいの間隔で・・・というものです。

毎回Now関数やTime関数などでその時点の時刻を取得し、前のイベントからどれくらい
時間がたったのかを把握しましょう。
#13184-0
RE#13181:時計が遅れてくる。
> 現在1分ごとにタイマーコントロールを使ってイベントを発生していますが
> 数時間動かしていると、だんだん時計が遅れてきます。24時間もほっとくと
> 2時間程遅れています。(T_T)
> 何ででしょうか?
タイマーコントロールはそういうものです。

タイマーコントロールではNow等を元に数秒間隔くらいで
時計の更新をしてはいかがでしょうか?


ちなみに・・・

猿頁
http://member.nifty.ne.jp/salv/
の
「パソコンはおもちゃ」
プログラミング編 002

に「Timer コントロール」等について実験した情報が
掲載されています。
※貴方も実際に動作を確認してみてはいかがでしょうか?
#13188-0
RE#13184:時計が遅れてくる。
> > 現在1分ごとにタイマーコントロールを使ってイベントを発生していますが
> > 数時間動かしていると、だんだん時計が遅れてきます。24時間もほっとくと
> > 2時間程遅れています。(T_T)
> > 何ででしょうか?

よねKENさん、ゆうさん、早速のご返答ありがとうございます。
タイマーコントロールのイベント発生時間はあまり正確ではないということは
知ってはいたんですが今回使ってみてビックリ、パソコン自体の時刻(画面右
下の時刻)がずれてくるではありませんか。よってタイマーコントロールのバ
グかなと思った次第です。
これって、タイマーコントロールは使わないほうがいいのでしょうか?
#13190-0
RE#13188:時計が遅れてくる。
> 知ってはいたんですが今回使ってみてビックリ、パソコン自体の時刻(画面右
> 下の時刻)がずれてくるではありませんか。よってタイマーコントロールのバ
> グかなと思った次第です。

Timeステートメント(Time関数でもTimerコントロールでもTimer関数でもない)で
時刻を設定したりしていませんか?

そうでなければ、そういう現象は見たことがありません。
単にパソコンがハード的に壊れているとか?

> これって、タイマーコントロールは使わないほうがいいのでしょうか?

タイマーコントロールそのものによる現象ではないと思います。
私はしょっちゅうタイマーコントロール使ってますけど、
そんなわけのわからない現象には出会ったことはありません。

私の環境はWin95+VB5SP3。
#13192-0
RE#13190:時計が遅れてくる。
よねKENさん、ご返答ありがとうございます。

> Timeステートメント(Time関数でもTimerコントロールでもTimer関数でもない)で
> 時刻を設定したりしていませんか?
> 
んーと、TIME使っているところといえば
Private Sub Timer1_Timer()
  IF Mid$(Format(Time,"hh:mm:ss"),7,2) = "00" THEN
    Label1.Caption = Date$ + " " + Time$
       :
       :
ぐらいです。
で、Timer1.Interval=500 に設定して上記のルーチンで秒単位で時間を
見て1分ごとの処理をしてます。

> タイマーコントロールそのものによる現象ではないと思います。
> 私はしょっちゅうタイマーコントロール使ってますけど、
> そんなわけのわからない現象には出会ったことはありません。

そーですよね、こんな症状があったらタイマーコントロール自体がなりたた
なくなりますよね。
早速、ハードの点検と、組み込まれているコントロールのチェックをしてみ
ます。(^_^)/~~
#13193-0
RE#13192:時計が遅れてくる。
> んーと、TIME使っているところといえば
> Private Sub Timer1_Timer()
>   IF Mid$(Format(Time,"hh:mm:ss"),7,2) = "00" THEN
>     Label1.Caption = Date$ + " " + Time$
500ミリ秒ということはイベントの発生タイミングに1秒回に1回
(旨くいっても2回)しか発生しません。

その条件で00秒を比較しているのですから、タイミングがずれる時
やイベントを飛ばされる(他の処理等で)場合00秒時にそのイベントが
発生しないことを考えてコードを書くといいです。

ちなみに、秒を取得する関数も用意されています。
※詳しくはヘルプで調べて下さい

●猿頁の先の項目は読んで確かめて下さい
#13194-0
RE#13193:時計が遅れてくる。
> 500ミリ秒ということはイベントの発生タイミングに1秒回に1回
> (旨くいっても2回)しか発生しません。
> 
> その条件で00秒を比較しているのですから、タイミングがずれる時
> やイベントを飛ばされる(他の処理等で)場合00秒時にそのイベントが
> 発生しないことを考えてコードを書くといいです。

タイミングがずれることは考えてましたが、イベントが飛ばされることもあるんで
すね。(>_<)

> 
> ちなみに、秒を取得する関数も用意されています。
> ※詳しくはヘルプで調べて下さい

なるほど、second というものがあったんですね。いやっ、おはずかしい。(^^;
今まで N88BASIC なるものをを使っていたもので、秒の判定は毎度こんな感じでした。
ヘルプは探してみるもんですねー。

> 
> ●猿頁の先の項目は読んで確かめて下さい

早速、見に行ってまいりました。
なるほど、色々とありました、ありまりた。
理解不能な言葉もありましたが、タイミングのずれや、イベントが飛ばされることへの
対処法もなんとなくわかるような気がします。
(APIとかまだ使ってないもんで、そのへんが...)

なかなか奥が深いですねー。上記のHPをみて修行してみまっす。(^_^)
どうもありがとうございました。
このページと関連する記事:
#17890-0Timerを使ったTime表示2001-09-19(水) 15:50
#599-2Timer関数について2003-12-25(木) 14:02
#497-0タイマーをつくるには?1999-08-04(水) 11:55
#18387-0ストップウォッチの作り方?2001-02-04(日) 23:14
#39907-0Timerを確実に動かす2001-03-07(水) 00:23
#11286-0Timerコンポーネントについて2000-09-11(月) 16:03
#13392-0ストップウオッチ2000-12-13(水) 01:39
#29771-0VBで正確なタイマー割り込み2000-09-11(月) 19:04
#842-1タイマーコントロール2004-01-22(木) 11:30
#21947-0時計のチラチラを直すにはどうすれば・・・2001-07-24(火) 10:49
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)