tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 「0」ではなく「数字」が表示されるようにはなりましたが、
投稿日: 2008/03/07(Fri) 09:50
投稿者tea
また、質問させてください。
Indexをグローバル変数にすることでPicyureBox内の所定の位置に
「0」ではなくて「数字」が表示されるようにはなりましたが、
7箇所の表示位置に対して、1回目にコマンドボタンをクリックす
ると、仮に表示される数字は「2」だとして、2回目にコマンドボタン
をクリックすると「3」とします。

7箇所の表示は「2」「3」「=」「=」「=」「=」「=」
となるはずですが、以下のコードを実行すると
「3」「3」「=」「=」「=」「=」「=」と表示されてしまいます。

何故このようになるのかわかりません。
教えてください。
よろしくお願いします。

標準モジュール
Option Explicit

Public Index As Integer

Teamクラス
Private Type UTeam
    AnElapsedTime(bbTimeMin To bbTimeMax) As Integer
End Type
Private mp As UTeam

Public Property Get AnElapsedTime(ByVal Index As bbTime) As Integer
    AnElapsedTime = mp.AnElapsedTime(Index)
End Property

Public Property Let AnElapsedTime(ByVal Index As bbTime, _
                    ByVal NewValue As Integer)
    With mp
        .AnElapsedTime(Index) = NewValue
        .IsDirty = True
    End With
End Property

Private Sub clearResultWithoutPlayers()
Dim i As Long

    With mp
        For i = bbTimeMin To bbTimeMax
              .AnElapsedTime(i) = -1
        Next
       .IsDirty = True
    End With
End Sub

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
    
    b = Game.Setting.QuarterMinutes
    c = Left(frmMain.vsGameTime.Value / 60, 1)
    d = b - c
        
    Index = d
    
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
                    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

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。