投稿時間: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
|