@Romanson

Почему не работает поток в Delphi FMX?

Привет тостер! Пытаюсь реализовать циклическую загрузку файла по средстом потока. т.к. форма нужна постоянно в доступе, внешне должен постоянно подгружаться файл базы.

type
  ThreadHTTP = class(TThread)
  private

  public
    Stream: TMemoryStream;
    i: integer;

    procedure Execute; override;
    procedure ShowResult;
  end;

{$R *.fmx}

procedure TForm1.Button1Click(Sender: TObject);
begin
  Timer1.Enabled := true;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin

end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  MyHTTP: ThreadHTTP;
begin
  ProgressBar1.Value := 0;
  MyHTTP := ThreadHTTP.Create(False);
end;

{ ThreadHTTP }

procedure ThreadHTTP.Execute;
var
  j: integer;
begin
  inherited;
  i := 0;
  j := 0;
  Stream := TMemoryStream.Create;
  Form1.IdHTTP1.Get('http://сайт/base.txt', Stream);
  Form1.ProgressBar1.Max := Stream.Size;
  while j <= Stream.Size do
  begin
    inc(i);
    Synchronize(ShowResult);
    inc(j);
    Form1.ProgressBar1.Value := Form1.ProgressBar1.Value + 1;
  end;
  // Stream.SaveToFile('C:\base.txt');
  Stream.SaveToFile(tpath.getdownloadspath + '/base.txt');

  // Form1.Memo1.Lines.LoadFromFile('C:\base.txt');
  Form1.Memo1.Lines.LoadFromFile(tpath.getdownloadspath + '/base.txt');
  Stream.Free;
end;

procedure ThreadHTTP.ShowResult;
begin
  Form1.Label1.Text := IntToStr(i) + ' kbs';
end;

на ПК все отлично работает и при изменении базы из вне все отлично работает в реальном врмемени. в АНДРОИД системе не хочет грузить файл в некакую. Прогресс бар не бежит. ФАйл не качает и не сохраняет. В чем проблема?
  • Вопрос задан
  • 341 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы