VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2004/03/12(Fri) 18:55
投稿者トラッキー
Eメール
URL
タイトルRe^6: Timerを使用したら「×」を表示させるには?

花ちゃんさん、回答ありがとうございます。

> .AutoRedraw = True はどこに設定したのですか?
> フォームに表示しているのなら フォームの.AutoRedraw = True に
> ピクチャーに表示しているのならピクチャーの .AutoRedraw = True に設定して
> 試してみましたか?

.AutoRedraw = Trueに関して私はプロパティウインドウの事だとばかり
考えていましてコードとして記述するとは考えても見ませんでした。
ヘルプも参照してみました。
現状ではピクチャボックスPicDrawに.AutoRedraw = True を設定し以下
のようにコードを書きかえ、さらにfrmGameRecordの実行時にcmdTimeOut
ボタンがゲーム時間用タイマーを「試合開始」「一時停止」「時計リセッ
ト」などの操作をするたびに.EnabledをTrueにしたりFalseに変えたりと
いう事をしていたためFalse状態の時に「×」は表示されなかったのだと
いうことがわかりました。
そして7箇所の「×」の表示を考えてコードを記述してみましたが、最
初の1つは良いのですが2つ目以降は表示されない状況です。
ご意見よろしくお願いします。

Option Explicit
Private file_name As String
Private Obj As Object
Private PrtX As Long
Private PrtY As Long

Private Sub PLocate(X As Long, Y As Long, myStr As String)
    'プレビュー用'
    With Obj
        .ScaleMode = vbCharacters   'キャラクターモードに設定
        .CurrentX = X * PrtX               '水平座標の設定
        .CurrentY = Y * PrtY               '垂直座標の設定
    End With
    Obj.Print myStr             '指定位置に文字列を表示
End Sub

Private Sub sPreview()
Dim i As Integer
Dim h As Integer
Dim j As Integer
Set Obj = picDraw
Dim cnt As Integer
cnt = cnt + 1

    'プレビュー用ピクチャボックスのサイズをプリンタに合わせる'
    With picDraw
        .Height = Printer.Height
        .Width = Printer.Width
        .ScaleHeight = Printer.ScaleHeight
        .ScaleWidth = Printer.ScaleWidth
        .AutoRedraw = True
    End With
    
    '垂直スクロールバーの設定'
    With VScroll1
        .Max = picDraw.Height - picFrame.Height
        .LargeChange = .Max / 10
        .SmallChange = .LargeChange / 10
    End With
    
    PrtX = Obj.ScaleWidth / Printer.ScaleWidth
    PrtY = Obj.ScaleHeight / Printer.ScaleHeight
  
  'Aチームのゲーム記録'
    'Aチームのチーム名を記録させます。'
    Obj.Font.name = "MS 明朝"
    Obj.Font.Size = 10
    Call PLocate(34, 2, "チームA")
    Obj.Font.Size = 14
    Call PLocate(34, 4, frmGameMember.txtTeamName1(0).Text)
    
    'Aチームの総得点を記録させます。'
    Obj.Font.Size = 10
    Call PLocate(34, 6, "得点")
    Obj.Font.Size = 14
    Call PLocate(38, 6, frmGameRecord.lblTokuten1(0).Caption)
    
    'Aチームのチーム名を記録させます。'
    Obj.Font.Size = 10
    Call PLocate(1, 8, " チームA:")
    Obj.Font.Size = 18
    Call PLocate(10, 8, frmGameMember.txtTeamName1(0).Text)

  'Aチームのチャージドタイムアウトを記録させます。'
    Obj.Font.Size = 10
    Call PLocate(37, 8, "チャージドタイムアウト")

    'Aチームがチャージドタイムアウトを取った場合にプレヴュー表示する'
    For cnt = 0 To 7
    If frmGameRecord.cmdTimeOut.Enabled = True And cnt = 0 Then
        Call PLocate(38, 9, "×")
    ElseIf frmGameRecord.cmdTimeOut.Enabled = True And cnt = 1 Then
        Call PLocate(41, 9, "×")
    ElseIf frmGameRecord.cmdTimeOut.Enabled = True And cnt = 2 Then
        Call PLocate(44, 9, "×")
    ElseIf frmGameRecord.cmdTimeOut.Enabled = True And cnt = 3 Then
        Call PLocate(47, 9, "×")
    ElseIf frmGameRecord.cmdTimeOut.Enabled = True And cnt = 4 Then
        Call PLocate(50, 9, "×")
    ElseIf frmGameRecord.cmdTimeOut.Enabled = True And cnt = 5 Then
        Call PLocate(53, 9, "×")
    ElseIf frmGameRecord.cmdTimeOut.Enabled = True And cnt = 6 Then
        Call PLocate(56, 9, "×")
    End If
    Next cnt


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

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -