[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2007/07/14(Sat) 16:39
投稿者名:tea
Eメール:
URL :
タイトル:
タイマーが0になったあと10秒間だけ入力可能にしたいんですが・・・
フォームにタイマー1つとMSFlexGrid(0と1)2つがあり、タイマーが0になったら
MSFlexGrid(0と1)を非表示になるようにしていましたが、タイマーが0からマイ
ナス10秒までの間、MSFlexGrid(0と1)を非表示にしないで入力が出来るように
したいのですが、どうしたらよいのかわかりません。
コードはいかの様になっていますが、あと10秒の方法がわからないんです・・・。
初歩的なことかもしれませんが、どうぞよろしくお願いします。

'タイマーが0になった場合の処理
If vsGameTime.Value = 0 Then
        'ブザーを鳴らす    
    Beep
            
            '終了後10秒間は記録できるようにする。
            with mp
               For l = 0 To 1
                   'MSFlexGridを入力可能にする。
                   grdPlayers(l).EnabledResult = True
               Next
            end with
            
      '10秒経過の後非表示として次へ移る。
            tmrCountDown.Enabled = False
            readyNextQuarter

投稿時間:2007/07/15(Sun) 21:34
投稿者名:tea
Eメール:
URL :
タイトル:
自己解決しました。
APIを使うことで解決しました。
失礼しました。

投稿時間:2007/07/21(Sat) 11:25
投稿者名:tea
Eメール:
URL :
タイトル:
解決方法の詳細
> APIを使うことで解決しました。

標準モジュールに以下を宣言します。
Declare Function GetTickCount Lib "kernel32" () As Long

そしてDelay関数を用意します。
Function Delay(ByVal t As Long)
Dim At_0 As Long, At_1 As Long
  At_0 = GetTickCount
  At_1 = At_0
  While ((At_1 - At_0) < t)
    At_1 = GetTickCount
    DoEvents
  Wend
End Function

その後はDelayの後に(待ち時間:単位ミリ秒)を記載して使用します。

具体例は「Delay 50」などです。