コマンドについて

解決


たろう  2003-10-24 04:05:16  No: 109390

コマンドをクリックした数をラベルに表示したいのですが、
何かよい方法ありますか?


Say  2003-10-24 05:41:32  No: 109391

クリックするたびに
回数をカウントしてください。


ファン太  2003-10-24 18:22:45  No: 109392

プロシージャの外で変数を定義してスタートアップで初期化し、コマンドクリックでカウントさせれば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


Say  2003-10-24 18:38:04  No: 109393

変数のスコープは狭いほど好ましいので、
「特定のプロシージャ内でしか用いないが値を保持したい変数」は
Staticにするほうが好ましいでしょう。
モジュールレベル変数と異なり、
他のプロシージャで不用意に変更する危険がなくなります。

Option Explicit
Private Sub Command1_Click()
    Static CntUp As Integer
    CntUp = CntUp + 1
    Label1.Caption = CntUp
End Sub


たろう  2003-10-24 18:48:54  No: 109394

ありがとうございました。
今、スロットゲームを作成してて、
そのBETの表示で使いました。

スロットゲーム作成で、何にかいいアドバイスありましたら、
情報提供の方、よろしくおねがいします。


ファン太  2003-10-24 19:07:05  No: 109395

絵柄の並びとリールカウンタの進行方向は逆にしないと反対周りになりますよ(^^; 

絵柄   管理番号
  7      1  
  C      2
 BAR     3
  #      4
  .      .
  .      .
  .      .
  ?      21

だったら、回転させる時には21->1で逆に回しましょう(経験者談・・)
それから折り返しはラップさせる(最初の配列を最後の配列の下にくっつける)と楽です。

あとStatic変数はそのプロシージャ内でしか初期化とか出来ないので、ゲームとか作るときはスコープを広げるのもやむなしか?・・・と(使い勝手ですけどね)。


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

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






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