タイマー

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: タイマー

by M.S. » 2006年11月08日(水) 20:00

> わざわざ時分秒を管理せずに、表示のときだけ算出すればいいと思います。
> Longは整数型なので、端数は自動的に切り落とされます。
>
> このコードで、僕が望んでいた動作が完全に実現されました。
皆さん、どうもありがとうございました。


> ちなみに、みなさん「時」が360秒になってしまってますよ(>_<)

あっ、ホントだ…

by pizz » 2006年11月02日(木) 19:27

わざわざ時分秒を管理せずに、表示のときだけ算出すればいいと思います。
Longは整数型なので、端数は自動的に切り落とされます。
ちなみに、みなさん「時」が360秒になってしまってますよ(>_<)

by M.S. » 2006年11月02日(木) 18:02

※どういった処理がしたいのかよく分からないので相応しくないかもしれません
すいませんが、書いて頂いたコードは、
僕が望む動作ではありませんでしたが、少し近い感じでした。

僕が望む動作は、簡単に言えば、Win32 プログラミング講座の、
「プログレスバーとタイマー処理」のプログラムを改良して、
秒だけでなく、分・時間も入力できて、
カウントが「hh 時間 mm 分 ss 秒」となるようにしたいのです。

最初から書いておけばよかったですね、すいませんでした。

Re: タイマー

by 7 » 2006年10月31日(火) 21:54

> 時間>0、分<0、秒<0 になると、秒が「-1、-2、-3、…」となってしまいます。
buf_s=buf_s-1が原因だと思います。秒の値がどうであろうがデクリメントしちゃってますから。
ElseIfの話ですけど、よく読んでたらこうした方が良いような気がしました。
※どういった処理がしたいのかよく分からないので相応しくないかもしれません 以下のコードは修正すべきだと思います。

コード: 全て選択

buf=Str$(buf_h*360+buf_m*60+buf_s)
count=Val(buf)

コード: 全て選択

count=(buf_h*360)+(buf_m*60)+(buf_s)
数値を文字に変換してそれを数値に変換しているだけです。文字をどこかで使うのかと思ったら数値に変換する為にしか使ってません。意味が無いと思います。

Re: タイマー

by M.S. » 2006年10月31日(火) 21:26

>

コード: 全て選択

if (buf_s<0) and (buf_m>0) then
> (buf_s<0)がTRUE、で、(buf_m>0)もTRUE、なら何々、と簡単に読み直すことができます。たぶん。
>
> > 「時間>0 And 分<0 And 秒<0」と「時間<0 And 分<0 And 秒<0」が出来ません。
> さっき書いたことを踏まえ、以下のように書いてみた場合どうでしょう?
>

コード: 全て選択

if (buf_h>0) And (buf_m<0) And (buf_s<0) then
> if (buf_h<0) And (buf_m<0) And (buf_s<0) then
> 分かってると思いますけど、たぶんElseIfSelect文を使うべきです。

注釈を書き忘れていました、すいません。

ElseIf を使ってやってみたのですが、
時間>0、分<0、秒<0 になると、秒が「-1、-2、-3、…」となってしまいます。

Re: タイマー

by 7 » 2006年10月31日(火) 20:01

> 「分>0 And 秒<0」の時のコーディングは出来たのですが、
その時の判定をしているのは以下のコードですよね?

コード: 全て選択

if buf_s<0 and buf_m>0 then
計算の優先順位が問題ではないかもしれませんけど、見やすいと思うのでまずは下のように変えましょう。

コード: 全て選択

if (buf_s<0) and (buf_m>0) then
(buf_s<0)がTRUE、で、(buf_m>0)もTRUE、なら何々、と簡単に読み直すことができます。たぶん。

> 「時間>0 And 分<0 And 秒<0」と「時間<0 And 分<0 And 秒<0」が出来ません。
さっき書いたことを踏まえ、以下のように書いてみた場合どうでしょう?

コード: 全て選択

if (buf_h>0) And (buf_m<0) And (buf_s<0) then
if (buf_h<0) And (buf_m<0) And (buf_s<0) then
分かってると思いますけど、たぶんElseIfSelect文を使うべきです。

タイマー

by M.S. » 2006年10月31日(火) 19:29

現在、“時間”・“分”・“秒” を別々に入力できるタイマーを作っています。
「分>0 And 秒<0」の時のコーディングは出来たのですが、
「時間>0 And 分<0 And 秒<0」と「時間<0 And 分<0 And 秒<0」が出来ません。
いろいろやってみましたが、どれも失敗するので質問することにしました。
コードは参考まで

よろしくお願いします。

ページトップ