タイトル : 「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 |