Существует такая ситуация:
У меня есть программа, она автоматически обновляется через интернет. Обновление происходить с помощью другого EXE файла. то есть главная закрывается и открывается апдейтер, который удаляет страрую версию основной программы и скачивает новую. 
Загрузка происходит с помощью:
	Код:
	| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | functionGetInetFile(constfileURL, FileName: String): boolean;
 constBufferSize = 1024;
 varhSession, hURL: HInternet;
 Buffer: array[1..BufferSize] ofByte;
 BufferLen: DWORD;
 f: File;
 sAppName: string;
 begin
    Result:=False;
    sAppName := ExtractFileName(Application.ExeName);
    hSession := InternetOpen(PChar(sAppName), INTERNET_OPEN_TYPE_PRECONFIG,
          nil, nil, 0);
    try
       hURL := InternetOpenURL(hSession,
       PChar(fileURL),nil,0,0,0);
       try
          AssignFile(f, FileName);
          Rewrite(f,1);
          repeat
             InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen);
             BlockWrite(f, Buffer, BufferLen)
          untilBufferLen = 0;
          CloseFile(f);
          Result:=True;
       finally
       InternetCloseHandle(hURL)
       end
    finally
    InternetCloseHandle(hSession)
    end
 end;
 | 
 
Ну при нажатии на кнопку эта часть:
	Код:
	| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | varFileOnNet, LocalFileName: string;
 verin:tinifile;
 begin
    FileOnNet:='...';
    LocalFileName:='project2.exe';
           application.ProcessMessages;
    ifGetInetFile(FileOnNet,LocalFileName)=Truethen
       begin
       ShowMessage('Обновление завершено!');
       verin:=tinifile.Create('VerIn.ini');
       verin.WriteString('Ver','Ver', edit1.Text);
       end
    else
       ShowMessage('Ошибка! Проверьте ваши настройки интернета. При необходимости обратитесь в тех службу.');
 | 
 
Так теперь собстенно проблема в другом. Мне надо получать размеры файлов на сервере и на компе. На компе я получаю с помощью:
	Код:
	| 1 2 3 4 5 6 7 8 9 10 11 12 | functionGetFileSize(FileName: String): Integer;
 var
   FS: TFileStream;
 begin
   try
     FS := TFileStream.Create(Filename, fmOpenRead);
   except
     Result := -1;
   end;
   ifResult <> -1thenResult := FS.Size;
   FS.Free;
 end;
 | 
 
А на сервере:
	Код:
	| 1 2 3 4 5 6 7 | HTTP := TIdHTTP.Create(nil);
    Razmer := HTTP.Response.ContentLength; 
  HTTP.Free;
  Razmer := Round (Razmer / 1024);
 Edit3.text:=IntToStr (Razmer) + ' KB';
 | 
 
Проблема в том, что при загрузке значение размера файла на компе должно меняться каждое мгновение, но это не происходит, программа на время загрузки просто подвисает, а потом выдает, что успешно обновился. Как можно решить данную проблему