タイトル : Re^13: 経過時間の算出部分と表示部分の処理はできました。 投稿日 : 2008/03/06(Thu) 15:30 投稿者 : 琴
> 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 bbTime) > > Dim Text As Integer > Dim A As Integer > Dim Alignment As EAlignment33 > > Call AnElapsedTime > > Text = mp.A > > With makeMatrixRect(Col, Row, Cols, Rows) > drawText .Left + 0.2, .Top + 0.05, .Right, .Bottom, _ > Text, Alignment, Color, Font > End With > > End Sub 表示するために TimeOutMinutes に入ってくる度に 再度 AnElapsedTime で経過時間を求めて それを表示するようになってますね。 つまり、計算が必要な場合は同じ計算を2度行い、 計算が不要な時でも計算してしまっている状態です。 また、追加した index が使用されていないので 引数の内容や有無に関わらず結果は同じになってしまいます。 > If mp.Game.Team(ixTeam).AnElapsedTime(i) <> -1 Then > Call .AnElapsedTime > > 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 これだと mp.Game.Team(ixTeam).AnElapsedTime(i) <> -1 の時は 経過時間を計算するだけで表示に行かない事になりますね。 > また、ブレークポイントを置いてF8で追っていくと、1回目のコマン > ドボタンをクリックすると.AnElapsedTime(i)の値は「1」なのですが > 、ElseIf mp.Game.Team(ixTeam).AnElapsedTime(i) = -1 Then > の方を選択して動作します。 .AnElapsedTime(i) と i を勘違いしてるってことはないですよね?^^; もしくは .AnElapsedTime(i) が Boolean型で判定されてるとか? 試しにCInt関数とかで数値型に変換してみてください。 |