EIdHTTPProtocolExceptionが未定義になるのはなぜ?

解決


AS  2014-07-03 04:41:42  No: 46426

長年疑問に思ってきましたが、どうしても使用しなければならなくなりそうなので、質問させてください。

下の文をフォームのないunitに書き込むとIdHTTPProtocolExceptionが未定義になりますが、Form1以外のVCLフォームのunitに書き込むとエラーになりません。
フォームのないunitでエラーを出さずに使用するにはどうしたらいいでしょうか?

よろしくお願いします。

 with Form1 do begin
  ENC :=TMBCSEncoding.Create(j);
  MS :=TMemoryStream.Create;
  S1:=TstringList.Create;
  try
    IdHTTP1.Get(FURL,MS);
    MS.Position :=0;
    S1.LoadFromStream(MS,ENC);
    for i := 0 to S1.Count-1 do  S:=S+S1[i];
  except
    on e: EIdHTTPProtocolException do
    begin
      //;
    end;
    on e: Exception do
    begin
      //
    end;
  end;

  ENC.Free;
  MS.Free;
  S1.Free;
 end;


AS  2014-07-03 04:45:24  No: 46427

XE2を使用しています。


igy  2014-07-03 06:49:28  No: 46428

試していませんが・・

usesにIdHTTPを追加するのは、いかがですか?


AS  2014-07-03 09:25:29  No: 46429

ありがとうございました。エラーは消えました。
下の文が最初からエラーにならないので、
IdHTTPがいるとは気づきませんでした。

  try
    IdHTTP1.Get(FURL,MST);
    MST.Position :=0;
    SL.LoadFromStream(MST,ENC);
    for I := 0 to SL.Count - 1 do s:=s+sL[i];
  finally
    ENC.Free;
    MST.Free;
    SL.Free;
  end;


Mr.XRAY  2014-07-05 05:45:44  No: 46430

もし,参考になれば.

http://mrxray.on.coocan.jp/bbs/DelphiBBS/mrxray_delphifan_coffe.cgi?tree=s7691#7691


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

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






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