掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
インターネットからファイルをDLするとき完了を待つには? (ID:16064)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
シャチ様、早速のご指摘をありがとうございます。 IEDownloadコンポーネントをダウンロードすると、DownloadDemo、LinkChecker、ResumeDemoの三つのデモプログラムが付いておりますので、そのなかのDownloadDemo、LinkCheckerのコンプリートで色々やってはいるのですが現在まだ私のレベルでは解決出来ておりません。 今まで(Result = S_OK)や 'Finished...'を捕らえて、やってはいるのですが、ここで言うS_OKやFinishedはOnDataのバッファーmemo2.lines.add(pchar(buffer));へのS_OKではないかと考えられます。 ところが説明によるとファイルへではなくて、その前の段階の保存で、このバッファーは複数のURLをロードすると順番はランダム、データーも混入すると書いてあるような気がします。だから分けたければ受けのMemoもその数だけ準備するような説明があります。(従ってそのままファイルへ落とせない。) もっと勉強して、テストしながら本来の使い方を探ってみます。 仕方がないので今は、大きなタイムロスですがタイマーでファイルがダウンロード完了するまで待たせるようにしました。 それでも、先日Mr_XRAYさま他多数の先輩方のご指導により、スクラップ機能付きタブブラウザのひな形が完成しました。(超遅いですけど) この場をお借りして、お礼を述べさせて頂きます。 もう少し、研究してみます。ありがとうございました。m(__)m 【DownloadDemoのOnコンプリート】 procedure TForm1.IEDownload1Complete(Sender: TBSCB; Stream: TStream; Result: HRESULT); begin if (Result = S_OK) then memo1.lines.add('Download complete...') else memo1.lines.add(Errortext(Result) + ' ' + ResponseCodeText(Sender.ResponseCode)); 【DownloadDemoのOndata】 procedure TForm1.IEDownload1Data(Sender: TBSCB; var Buffer: PByte; var BufLength: Cardinal); begin memo2.lines.add(pchar(buffer)); 【LinkCheckerのOnコンプリート】 procedure TForm1.IEDownload1Complete(Sender: TBSCB; Stream: TStream; Result: HRESULT); begin if Sender.Responsecode = 200 then begin StringGrid1.Cells[1, Links.IndexOf(Sender.Url) + 1] := 'Finished...' ResumeDemoの
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.