イベントの発生

解決


初心者  2004-12-20 19:29:05  No: 87449

初歩的な質問ですみません。
あるイベントが発生したら、強制的に他のイベントを発生させたいのですが、
どうすれば良いのでしょう?
RaiseEventイベントステートメント等を使用するのかな、とは思うのですが、
使い方がよくわかりません。
具体的な処理ですが、Winsockが2つありまして、片方のWinsocK
で、SendComplete()が発生したら、その処理の延長として、もう片方の
Winsockに対して、DataArrival()を発生させたいのです。
すみませんが、宜しくお願いします


適当主義者  2004-12-20 19:40:16  No: 87450

Set mWinSock2=New Winsock2 をどこかに追加して、

Private Sub Winsock1_SendComplete()

    call mWinSock2.Winsock2_DataArrival(bytesTotal)

End Sub

1番簡単  かつ、1番適当な方法。


適当主義者  2004-12-20 20:21:12  No: 87451

追記:RaiseEventの使用方法

'イベントを発行するクラスオブジェクトclsTeat
'============================================
Public Event SendText(Byref rText as String) 

private sub SetText(Byred rText as String)

   RaiseEvent SendText(rText)

End sub
==============================================

'イベントを受け取るフォームモジュール
'==============================================
Private WithEvents mTest as clsTest  '①

Private Sub mTest_SendText(Byref rText as String)

   Call MsgBox(rText)

End Sub
'==============================================
①どこかに Set mTest = New clsTest を追加すること。
  イベントを発行するオブジェクトへの参照を格納する場合は、WithEvents を忘れずに。


初心者  2004-12-20 20:23:13  No: 87452

回答ありがとうございます。
さっそく試してみたのですが、
FormのLoadで、

Set mWinSock2=New Winsock2 

を定義したのですが、コンパイルエラー「ユーザ定義型は定義されていません」
となってしまいます。
すみませんが、もう少し教えてもらいたいのですが。
宜しくお願いします


nanashi  2004-12-20 20:46:24  No: 87453

> Set mWinSock2=New Winsock2 をどこかに追加して、

> Private Sub Winsock1_SendComplete()

>     call mWinSock2.Winsock2_DataArrival(bytesTotal)

> End Sub

> 1番簡単  かつ、1番適当な方法。

↑なんだコレ?

その際の引数をどうするのかは分かりませんが、
Winsock1_SendCompleteでWinsock2_DataArrivalを呼んでみては?

Call Winsock2_DataArrival(bytesTotal)


適当主義者  2004-12-20 21:01:49  No: 87454

Set mWinSock2=New Winsock2
確かにこれは必要なかったです;
やるなら、Set mWinSock2=winsock2 が正しいですね。

'訂正
 Private Sub Winsock1_SendComplete()
 
     call Winsock2_DataArrival(bytesTotal)
 
 End Sub

bytesTotalはPrivate変数かPublic変数にして持ってくるといいかも。


初心者  2004-12-20 21:49:05  No: 87455

ありがとうございました
御教示通りにやったら、うまくいきました
また何かありましたら、宜しくお願いします


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

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






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