タイマーについて

解決


マサ  2004-02-20 07:00:32  No: 111931

よろしくお願いします。
では質問をさせていただきます。
form1とform2が用意されていてform1のタイマーが10から1ずつカウントダウン
されていき,0になるとform1を閉じてform2が表示されるというものを作っていますが
このプログラムでできると思ったんですが、
なぜか0から-1というふうに-の値まで行ってしまいます。なぜでしょう。
ご教授ぜひお願いします。
Private Sub Form_Load()
If Label1.Caption = 0 Then
Form1.Hide
Form2.Show
End If

End Sub

Private Sub Timer1_Timer()
Label1.Caption = Val(Label1.Caption) - 1

End Sub


たかみちえ  URL  2004-02-20 07:24:08  No: 111932

タイマーはアンロードされるまで(たとえ非表示でも)動きますよ、
ですからそれは正常な動作です。
  あと、文字列から数値への変換は、速度が犠牲になりますし、あまり不用意に何回もするべきことではないと思います。
グローバル変数として整数型を宣言し、それを使うとよいかと。


マサ  2004-02-20 07:30:23  No: 111933

すいません。初心者なもので・・・
どのようにすればよいか本当に簡単でいいのでソースをお願いできませんか?


oku  URL  2004-02-20 07:30:44  No: 111934

>Label1.Caption = Val(Label1.Caption) - 1
常にマイナス1してますが…
ゼロになった後のカウントをどうしたいかは知りませんが、
10に戻すなり、Enabled プロパティをFalseにしないと。


ねろ  2004-02-20 07:34:48  No: 111935

こんなことがしたいのかな
Private Sub Form_Load()
    Label1.Caption = "10"
    Timer1.Interval = 1000
    Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
    Label1.Caption = CStr(Val(Label1.Caption) - 1)
    If Val(Label1.Caption) <= 0 Then
        Timer1.Enabled = False
        Form1.Hide
        Form2.Show
    End If
End Sub


マサ  2004-02-20 07:35:29  No: 111936

okuさんレスありがとうございます。
0になったらform1がアンロードされて、form2を表示させたいのですが
0になってもform1は消えないし、form2も表示されません。
それで困っています。


マサ  2004-02-20 07:38:29  No: 111937

ねろさんまさしくそのとおりです。
どうもありがとうございました。
okuさん、たかみちえさん、どうもありがとうございました。感謝してます。
またいろいろあると思いますがw
よろしくお願いします。


マサ  2004-02-20 07:38:48  No: 111938

解決しました。


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

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






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