タイトル | : Re^2: 「0」ではなく「数字」が表示されるようにはなりましたが、 |
記事No | : 11710 |
投稿日 | : 2008/03/07(Fri) 16:57 |
投稿者 | : tea |
改めて質問させていただきます。 Indexはグローバル変数で宣言しています。 コマンドボタンをクリックした場合に1回目の経過時間から7回目の 経過時間を.AnElapsedTime(1)から(7)に値を保存したいと考えて、以 下のようにコードを記述しました。 例としては「1」「2」「3」「4」「=」「5」「6」といった表示にな ります。 一定期間内にコマンドボタンがクリックされなかった場合に「=(ダ ブルライン)」を表示するようにしていますが、全7回の内「=」が 入るとその後の経過時間が正しく表示されなくなります。 デバッグもしてみたんですが、わかりません。
どうか教えてください。 よろしくお願いします。
PrintEngineクラス 'チャージドタイムアウト時の残り時間の表示 Public Sub TimeOutMinutes(ByVal Col As Single, _ ByVal Row As Single, _ ByVal Cols As Single, _ ByVal Rows As Single, _ Optional ByVal Color As Variant = Empty, _ Optional ByVal Font As Object = Nothing, _ Optional ByVal Index As Integer)
Dim Text As Integer Dim Alignment As EAlignment33 Text = Index With makeMatrixRect(Col, Row, Cols, Rows) drawText .Left + 0.2, .Top + 0.05, .Right, .Bottom, _ Text, Alignment, Color, Font End With End Sub 'チャージドタイムアウト取得時の経過時間計測 Public Sub AnElapsedTime() Dim b As Integer Dim c As Integer Dim d As Integer Dim e As Integer Dim f As Integer Dim g As Integer Dim h As Integer
'通常のゲームタイムの経過時間算出 b = Game.Setting.QuarterMinutes c = Left(frmMain.vsGameTime.Value / 60, 1) d = b - c Index = d '延長戦のゲームタイムの経過時間算出 If Game.IsExtraQuarter = True Then Select Case Game.Setting.QuarterMinutes 'クォーター時間が5&6&7分の場合は延長戦は3分 Case 5, 6, 7 e = 3 g = e - c Index = g 'クォーター時間が8&9&10分の場合は延長戦は5分 Case 8, 9, 10 f = 5 h = f - c Index = h 'Case Else 'Game.Setting.ExtraQuarterMinutes = Game.Setting.QuarterMinutes End Select End If End Sub
RScoreSheetCommanderクラス drawTeam 'チャージドタイムアウト取得時間の表示。 ixRow = ixRow + 1 For i = bbTimeOutMin To bbTimeOutMax .DrawMatrixBox i, ixRow, 1, 1 If mp.Game.Team(ixTeam).TimeOutted(i) Then If mp.Game.Team(ixTeam).AnElapsedTime(i) = -1 Then Call .AnElapsedTime '「経過時間」を表示する----------------- .TimeOutMinutes i, ixRow, 1, 1, _ colorByQuarter(mp.Game.Team(ixTeam).TimeOutted(i)), _ , Index '---表示位置に経過時間の値を保存------- Select Case Index Case 1 mp.Game.Team(ixTeam).AnElapsedTime(1) = Index Case 2 mp.Game.Team(ixTeam).AnElapsedTime(2) = Index Case 3 mp.Game.Team(ixTeam).AnElapsedTime(3) = Index Case 4 mp.Game.Team(ixTeam).AnElapsedTime(4) = Index Case 5 mp.Game.Team(ixTeam).AnElapsedTime(5) = Index Case 6 mp.Game.Team(ixTeam).AnElapsedTime(6) = Index Case 7 mp.Game.Team(ixTeam).AnElapsedTime(7) = Index End Select ElseIf mp.Game.Team(ixTeam).AnElapsedTime(i) <> -1 Then Index = mp.Game.Team(ixTeam).AnElapsedTime(i) .TimeOutMinutes i, ixRow, 1, 1, _ colorByQuarter(mp.Game.Team(ixTeam).TimeOutted(i)), _ , Index End If Else '「=」ダブルラインを表示する。 .DrawMatrixCenterDoubleLine i, ixRow, 1, 0.95, _ colorByQuarter(mp.Game.Team(ixTeam).TimeOutted(i)) End If Next
|