Donc, mon but est de démarrer une fonction dans un autre thread. Aussi j'ai besoin d'accéder à d'autres composants vcl à partir du nouveau thread. Voici mon code à ce jour:Accès au composant vcl dans le fil! Delphi
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';
mon programme se bloque et j'obtiens l'erreur: Exception EAccessViolation dans le module my.exe à 00154E53. Violation d'accès à l'adresse 00554E53 dans le module 'my.exe'. Lu de l'adresse 00000398.
Merci d'avance.
et la manière facile d'y arriver est les threads secondaires affichant des messages WM_USER et le thread principal y répondre. Dans votre cas, cependant, vous pouvez obtenir le même effet en utilisant l'objet indy TidAntiFreeze. Lisez ceci 'http: // stackoverflow.com/questions/37185/quoi-le-idiomatique-manière-de-faire-async-socket-programming-in-delphi' –