コマンドをクリックした数をラベルに表示したいのですが、
何かよい方法ありますか?
クリックするたびに
回数をカウントしてください。
プロシージャの外で変数を定義してスタートアップで初期化し、コマンドクリックでカウントさせればOKです、プロシージャー内で定義された変数は、呼び出されるたび生成、消滅します。古い言い方だと「自動変数」って言います。
一見不便さを感じますが、再帰呼び出し(関数やプロシージャーが自分自身を呼び出すこと)を可能にするためです。
再帰呼び出しは計算式内の多重カッコを解釈するようなアルゴリズムで必須です。
Option Explicit
Private CntUp As Integer 'プロシージャ外で宣言します
Private Sub Form_Load()
Label1.Caption = ""
CntUp = 0
End Sub
Private Sub Command1_Click()
CntUp = CntUp + 1
Label1.Caption = CntUp
End Sub
変数のスコープは狭いほど好ましいので、
「特定のプロシージャ内でしか用いないが値を保持したい変数」は
Staticにするほうが好ましいでしょう。
モジュールレベル変数と異なり、
他のプロシージャで不用意に変更する危険がなくなります。
Option Explicit
Private Sub Command1_Click()
Static CntUp As Integer
CntUp = CntUp + 1
Label1.Caption = CntUp
End Sub
ありがとうございました。
今、スロットゲームを作成してて、
そのBETの表示で使いました。
スロットゲーム作成で、何にかいいアドバイスありましたら、
情報提供の方、よろしくおねがいします。
絵柄の並びとリールカウンタの進行方向は逆にしないと反対周りになりますよ(^^;
絵柄 管理番号
7 1
C 2
BAR 3
# 4
. .
. .
. .
? 21
だったら、回転させる時には21->1で逆に回しましょう(経験者談・・)
それから折り返しはラップさせる(最初の配列を最後の配列の下にくっつける)と楽です。
あとStatic変数はそのプロシージャ内でしか初期化とか出来ないので、ゲームとか作るときはスコープを広げるのもやむなしか?・・・と(使い勝手ですけどね)。
ツイート | ![]() |