во первых: синхронизация сделана не правильно
во вторых: в примерах студии есть демка с отображением индикатора загрузки
в третьих: создание TIdHTTP (лучше заменить на THTTPClient) нужно делать в потоке
код на коленке, без TThread
// uses System.Threading
TTask.Run(
procedure
var
aHTPP: THTTPClient;
aStream: TStringStream;
aResult: String;
begin
aResult := '';
aHTPP := THTTPClient.Create;
aStream := TStringStream.Create('', TEncoding.UTF8);
try
aHTTP.Get('урл://', aStream);
aResult := aStream.DataString;
finally
FreeAndNil(aHTPP);
FreeAndNil(aStream);
end;
TThread.Synchronize(TThread.CurrentThread,
procedure
begin
Memo1.Text := aResult;
end)
end)