掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
inetコントロールについて教えてください (ID:83025)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> 教則本に、例題として載っていたのでそのまま引用したのですが・・・ ループで待機させる方法は、簡単でわかりやすいので、サンプルとしては 良く利用されていますが、VBではあまり良い方法では無いとされています。 VBは、「イベント駆動型(event driven)」の言語です。 本来は、イベント(ユーザや他のプログラムが実行した操作)に 対応して処理を行なうのが、適切なスタイルとなります。 StateChangedイベントを使った方法というのは、Executeメソッドによる 通信が完了した時に、InetコントロールからVB側に、イベントとして 「通信が終わりましたよ」と伝えてもらい、そのタイミングで 次の処理を行わせようというコーディング方法です。 一方、最初に使われていた、StillExecutingプロパティが変化するのを ループで監視する手法は、VBからInetコントロール側に、何度も何度も 「処理が終わりましたか?」と尋ね続ける手法になります。(効率が悪い) 一応、効率が悪くても実行する事はできるのですが、その場合、 フォームを閉じる際の処理には、充分に注意する必要があります。 ループ中のDoEventsが実行されているときに、ユーザー操作によって フォームが閉じられたりすると、フォームが非表示で残ってしまい、 いつまで経っても、アプリケーションが終了しないという事もあります。 # これは、「フォームがアンロードされた後」で、そのフォーム上の # コントロールやプロパティ等にアクセスした場合に、そのフォームが、 # 自動的にロードされなおされてしまう、という理由による物です。 > StateChangedは自分の宿題としてもう少し考えたいと思います。 これに関しては、ヘルプの以下の項を参照して見てください。 「Executeメソッド + StateChangedイベント」の使い方が書かれています。 [Visual Studio 6.0 ドキュメント] └[Visual Basic ドキュメント] └[Visual Basic の使用方法] └[コンポーネント ツール ガイド] └[ActiveX コントロールの使い方] └[ActiveX コントロールの使い方] └[インターネット トランスファ (Inet) コントロールの使い方] ねろさん > Inetコントロールを使うより WinInet Dllの FtpPutFileを使った方が > 簡単かも知れません。 うちでは、BASP21 (あるいはBASP21 Pro)のFTPオブジェクトを使うことが多いです。 http://www.hi-ho.ne.jp/babaq/basp21.html
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.