だから、私の目標は、別のスレッドで関数を開始しています。また、私は新しいスレッドから他のvclコンポーネントにアクセスする必要があります。ここに私のコードは、これまでです:スレッド内のvclコンポーネントへのアクセス!デルファイ
procedure TForm1.StartButtonClick(Sender: TObject);
var
thread1: integer;
id1: longword;
begin
thread1 := beginthread(nil,0,Addr(Tform1.fetchingdata),nil,0,id1);
closehandle(thread1);
end;
procedure TForm1.FetchingData;
var
...
begin
Idhttp1.IOHandler := IdSSLIOHandlerSocketOpenSSL1; //<- error
idhttp1.Request.ContentType := 'application/x-www-form-urlencoded';
私のプログラムがハングし、私はエラーを取得:00154E53のモジュールmy.exeで例外EAccessViolation。モジュール 'my.exe'のアドレス00554E53のアクセス違反。アドレスの前に00000398.
感謝を読みます。
をし、これを実現する簡単な方法は、WM_USERメッセージを投稿し、二次スレッドとそれらへの対応メインスレッドです。しかし、あなたの場合、indy TidAntiFreezeオブジェクトを使用することで同じ効果を得ることができます。 // stackoverflow.com /質問/ 37185 /いただきまし--慣用ウェイ・ツー・ドゥー・非同期ソケット・プログラミング・イン・delphi':この 'HTTPを読みます –