タイトル : とりあえず、ここまでは出来たんですが・・・ 投稿日 : 2008/03/04(Tue) 15:31 投稿者 : tea
琴さんのご意見を参考にコードを以下のように改良しました。 結果はPictureBox内の所定の位置に、数字1文字が配置されるように はなりました。 ただ、実は配置する位置は全部で7箇所あります。 1番目から7番目までの順にあるんですが、現状のコードでは時間が 経過するごとにコマンドボタンをクリックすると所定の1番目の位置に 時間が正しく表示されますが、その後2回目をクリックすると1番目の 位置と2番目の所定の位置に両方に経過時間が表示はされるんですが、 経過時間は2番目の時間が1番目にも表示されるようになってしまいま す。 下記のRScoreSheetCommanderフォーム内のコードも合わせて記載させて いただきましたが、どちらかのコードをさらに書き換えればいいのでは と思うものの、うまくいえないんですがここからどうしたらよいかがわ かりません。 教えてください。 よろしくお願いします。 PrintEngineクラスに新たにコードを追加。 Option Explicit 'ユーザー定義型変数を宣言' Private Type UPrintEngine A As Integer End Type Friend 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) Dim Text As Integer Dim A, b, c, d As Integer Dim Alignment As EAlignment33 b = Game.Setting.QuarterMinutes c = Left(frmMain.vsGameTime.Value / 60, 1) d = b - c mp.A = d 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 標準モジュールには Public Const bbTimeOutMin = 1 Public Const bbTimeOutMax = 7 RScoreSheetCommanderフォーム内の経過時間を表示するコードです。 ixRow = ixRow + 1 For i = bbTimeOutMin To bbTimeOutMax .DrawMatrixBox i, ixRow, 1, 1 If mp.Game.Team(ixTeam).TimeOutted(i) Then .TimeOutMinutes i, ixRow, 1, 1,_ colorByQuarter(mp.Game.Team(ixTeam).TimeOutted(i)) Else '「=」ダブルラインを表示する。 .DrawMatrixCenterDoubleLine i, ixRow, 1, _ 0.95, colorByQuarter(mp.Game.Team(ixTeam).TimeOutted(i)) End If Next |