0

スレッド内の更新に関する以前の質問のフォローアップはlistview こちら

以前の質問を解決するために別の方法で考え始めました。ダウンロード プロセスに時間がかかりすぎて、帯域幅が大量に必要になるためです。ダウンロードGIFimageしてディスクに保存し、後でアプリケーション内で使用します。これは現在のダウンロード スレッド コードです。

procedure TDownloadImage.Execute;
var
  aMs: TMemoryStream;
  aIdHttp: TIdHttp;
begin
  FGif := TGifImage.Create;
  try
    aMs := TMemoryStream.Create;
    try
      aIdHttp := TIdHttp.Create(nil);
      try
        aIdHttp.Request.UserAgent := 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0';
        aIdHttp.Get(FURL, aMs); // here is the client FURL
      finally
        aIdHttp.Free;
      end;
      aMs.Position := 0;
      FGif.LoadFromStream(aMs);
      FGif.Transparent := True;
    finally
      aMs.Free;
    end;
    if Assigned(FOnImageReady) then
      Synchronize(DoImageReady);
    end;
  finally
    FGif.Free;
  end;
end;

FURL のイメージをコンピュータ クライアントに保存したいのですが、このイメージを再度ダウンロードするように要求された場合、ダウンロード プロセスを中止し、クライアント コンピュータからロードする方法を教えてください。

4

1 に答える 1