よろしくお願いします。
では質問をさせていただきます。
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
タイマーはアンロードされるまで(たとえ非表示でも)動きますよ、
ですからそれは正常な動作です。
あと、文字列から数値への変換は、速度が犠牲になりますし、あまり不用意に何回もするべきことではないと思います。
グローバル変数として整数型を宣言し、それを使うとよいかと。
すいません。初心者なもので・・・
どのようにすればよいか本当に簡単でいいのでソースをお願いできませんか?
>Label1.Caption = Val(Label1.Caption) - 1
常にマイナス1してますが…
ゼロになった後のカウントをどうしたいかは知りませんが、
10に戻すなり、Enabled プロパティをFalseにしないと。
こんなことがしたいのかな
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
okuさんレスありがとうございます。
0になったらform1がアンロードされて、form2を表示させたいのですが
0になってもform1は消えないし、form2も表示されません。
それで困っています。
ねろさんまさしくそのとおりです。
どうもありがとうございました。
okuさん、たかみちえさん、どうもありがとうございました。感謝してます。
またいろいろあると思いますがw
よろしくお願いします。
解決しました。
編集 削除