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

投稿日: 2006/05/25(Thu) 01:22
投稿者
Eメール
URL
タイトルRe: イベント発生時の割り込み規制について

> 環境 WinXP-SP2 VB6.0-SP5
>
>
> 処理に3秒程度掛かるプロシージャ(たとえば検索処理プログラム)処理中に、
> コマンドボタン等のイベントが発生した場合、
> イベントの処理をおこなって、もとにプロシージャに戻ると思いますが、
> このとき、元のプロシージャで”Dim”で宣言された変数は、値がクリアされてしまいますよね?
つまり、以下のようなことですか?
hogeを呼び出し中にイベントの処理を行っても、
hogeのローカル変数の値がクリアされているように見えませんが…?
(もしかして、再起呼び出しになっている…?)

Option Explicit
Private WithEvents cmd As CommandButton

Private Sub Form_Load()
    Set cmd = Me.Controls.Add("VB.CommandButton", "cmd")
    With cmd
        .Caption = "テスト"
        .Move 0, 0, 1000, 1000
        .Visible = True
    End With
    
    Me.Show
    
    Call hoge
    
End Sub

Private Sub cmd_Click()
    'イベント
    MsgBox "コマンドボタンが押されました"   '←何か処理をする
End Sub

Private Sub hoge()
    '長い処理
    Dim local_i         As Long
    
    Do
        Me.Caption = local_i
        local_i = local_i + 1
        DoEvents
    Loop
    
End Sub

Private Sub Form_Unload(Cancel As Integer)
    'アンロード
    Unload Me
End Sub


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

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

- VBレスキュー(花ちゃん) - - Web Forum -