Loop処理内のコマンドキー操作について


ピカードの兄  2009-10-03 01:25:25  No: 101995

Loop処理の中でコマンドキーにて、処理の一時停止と続行をさせるには?
例えば、処理の一時停止をPAUSEにし、処理の続行をCONTINUEの様なコマンドボタンにするとして


にわとり  2009-10-03 01:30:46  No: 101996

マルチスレッドにしないといけないと思う。
そしてVB6はマルチスレッドに対応していない。

なので、やり方を変えましょう。


GOD  2009-10-05 19:04:53  No: 101997

一例。
Option Explicit

Private bAction As Boolean

Private Sub Form_Load()
    bAction = True
End Sub

Private Sub cmdContinue_Click()
    bAction = True
End Sub

Private Sub cmdPause_Click()
    bAction = False
End Sub

Private Sub cmdTest_Click()
    for 〜
        If Not DoEvents2(Me.Name) Then
            '処理中にユーザーがフォームを終了したらコントール等のアクセス禁止。
            Exit Sub
        End If
        If bAction Then
            ' 処理
'        Else
'            '一時停止中に無駄なCPUパワー使用しないためにメッセージボックス出す方がいいか。
'            MsgBox "一時停止中。" & vbNewLine & "解除するよ。"
'            bAction = True
        End If
    Next
End Sub

Private Function DoEvents2(FrmName As String) As Boolean
    Dim frm As Form
    Dim bRet As Boolean

    DoEvents
    For Each frm In Forms
        bRet = (frm.Name = FrmName)
        If bRet Then
            Exit For
        End If
    Next
    DoEvents2 = bRet
End Function


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加