[VB6 ] 計算時間內按鈕按下次數

看板Visual_Basic作者 (別急著吃棉花糖)時間13年前 (2011/07/05 20:30), 編輯推噓6(609)
留言15則, 5人參與, 最新討論串1/1
因為是想寫一個計算在3秒時間內按下按鈕的次數 不知道以下的寫法,為什麼n都是0 Dim n As Integer '設定n、t全域變數 Dim t As Integer Private Sub Command1_Click() Static n '靜態變數保留值 n = n + 1 Timer1.Enabled = True End Sub Private Sub Timer1_Timer() t = t + 1 If t = 3 Then MsgBox ("時間到") Print n End If End Sub 以上謝謝各位前輩 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.11.170.53

07/05 22:56, , 1F
把 Static n 拿掉就好了 ... 話說 Static 是幹麻的?
07/05 22:56, 1F

07/05 23:42, , 2F
自己還加了註解說那是靜態變數
07/05 23:42, 2F

07/06 02:57, , 3F
原來拿掉就可以了,因為想說要保留每次按下N的值
07/06 02:57, 3F

07/06 02:58, , 4F
謝謝樓上二位前輩~
07/06 02:58, 4F

07/06 03:01, , 5F
請教前輩,因為參考網路的文章,說靜態變數會保留值
07/06 03:01, 5F

07/06 03:02, , 6F
這邊為什麼要拿掉呢?謝謝
07/06 03:02, 6F

07/06 07:26, , 7F
拿掉第一行 Dim n 就好了
07/06 07:26, 7F

07/06 07:27, , 8F
Command1_Click 中的Static也是宣告變數
07/06 07:27, 8F

07/06 07:28, , 9F
可見範圍是自己(Command1_Click)
07/06 07:28, 9F

07/06 07:28, , 10F
跟開頭宣告的模組變數是不同的變數
07/06 07:28, 10F

07/06 07:29, , 11F
或者拿掉static,才可在Command1_Click以外的地方重設n
07/06 07:29, 11F

07/06 07:29, , 12F
(如果需要的話)
07/06 07:29, 12F

07/06 09:11, , 13F
全域變數或區域靜態變數,兩者選一啦
07/06 09:11, 13F

07/06 09:11, , 14F
不然就會發生以上版主解釋的scope問題
07/06 09:11, 14F

07/06 12:25, , 15F
謝謝版主及樓上前輩
07/06 12:25, 15F
文章代碼(AID): #1E4mG02i (Visual_Basic)