ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

あとAddHandlerの省略について

2007-03-16 21:33:51 | PG(VB)

あ、それからVB.NETのWebBrowserのページイベントハンドラー関数の書き方についてメモしたんだった。

WebBrowserのサンプルをネットで見ていると、イベントのハンドリングの書き方が違う。
VB2005はクラスが全然違うから違うとしても、ActiveX(COM)のを使っていても違うから不思議だったんだけど、謎が解けた。

VB6.0では、「変数名_イベント名」という名前で関数を書けば、それがイベントハンドラーになるらしい。
VB.NET2003では、変数宣言にWithEventsを付けて、関数定義で「Handles 変数名.イベント名」という指定を付ける。(関数名はどうでもいいはずなのだが、慣例からか、VB6.0と同じ名前を付けているサンプルが多くて紛らわしい)

他のプログラミング言語から見れば、関数名の命名によって動作が特殊になるなんて想像できないから、後者の方がまだ分かり易いなー。
一番しっくり来るのは、イベントハンドラーを登録しているとしか見えない「AddHandler」命令を使うことだけど。分かってみれば、Handlesの方が便利ですな(笑)

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

VB.NETでHTTP直接送受信

2007-03-16 21:21:27 | PG(VB)

VB.NET2003のXMLHTTPについてメモ。
WebBrowserを介さずに直接HTTPリクエストを送ってHTTPレスポンスを受け取れる。
…しかし、MSXML.XMLHTTPという名前からは、そういう機能にはとても見えない(苦笑)

そもそもMSXMLという名前からして、MS-XMLなんだろうけどMSX-MLにしか見えない!(自分の頭の中では、XMLよりMSXの歴史の方が長い(爆))


あと、WebBrowserのBeforeNavigate2についてメモ。
ページ遷移の直前に発生するイベントだけど、ここでHTTPリクエストを変更することは出来ないんだよねー…。

元々やりたかった事は、WebBrowserでsubmitされたら、その時に生成されるPOSTデータをちょっと加工して送信し、受信したHTMLの中身をこれまたちょっと加工して表示する、ということ。
表示前はDocumentCompleteでイベントが取れて、受信したHTMLを加工することは出来るんだけど、BeforeNavigate2では送信データを加工できない。
XMLHTTPでは、WebBrowserで入力されていたデータを自動的にセットしてくれたりしないし。
それぞれをそのまま使うだけでは、ちょっとずつ、やりたい事が出来ないのだった。

まぁBeforeNavigate2で遷移のキャンセルは出来るし、submitもVB側から行えるから…それをうまく使えばいいのかな~。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする