ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Imgem de Url travando aplicativo Delphi mobile

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Mobile com Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
sistema1
Novato
Novato


Registrado: Domingo, 25 de Mai de 2008
Mensagens: 5

MensagemEnviada: Sáb Nov 16, 2019 12:07 pm    Assunto: Imgem de Url travando aplicativo Delphi mobile Responder com Citação

Ola pessoal.. sou inciante em delphi mobile e estou com a seguinte situação:
tenho 3 listview que recebe dados via rest de um site PHP

usando restCliente, RestREquest e restResponse...
os dados recebe certim, popula alistvew tudo corretamente, compila também tudo normal.... o problema vem a seguir.....

no rest tem um campo imagem (jpg,png) somente a url da imagem,
uso esta função para converter a imagem em Bitmap

Código:

function TfrmPrincipal.LerImage(url: string): TBitmap;
 var
 strm : TmemoryStream;
 begin
    strm := TMemoryStream.Create;
    try
          http.Get(url,strm);
          strm.Position := 0;
          Result  := TBitmap.Create;
          result.Width := 100;
          result.Height := 50;
          result.LoadFromStream(strm);

    finally
      strm.Free;
    end;
 end;


porem quando coloco na listview esta imagem o aplicativo trava (para de responder..... uso desta forma no listview
Código:

procedure TFrmprincipal.ExecuteREST(aList: TListview; aArray: string);
var
  obj : TjsonObject;
  Item : TlistviewItem;
  lResult : TjsonArray;
   strm : TMemoryStream;

begin
  lResult := REST(aArray);
  TThread.CreateAnonymousThread(
  procedure
  var
    i: Integer;
  begin
   for i:= 0 to lresult.Count-1 do
    begin
      TThread.Synchronize(TThread.CurrentThread, procedure()
      begin
         obj            := lResult.Items[i] as TJSONObject;
         Item           := aList.Items.Add;
         item.text      := obj.GetValue('nome').Value;
         if (obj.GetValue('logo').ToString <> 'null') then
             Item.bitmap := LerImage(''+PathUrl+'/images/empresas/'+obj.GetValue('logo').Value)
          else
          Item.bitmap := LerImage(''+PathUrl+'/images/empresas/semimagem.png');
      end);
     end
   end).Start;

end;

O detalhe é se coloco apenas 2 listview funciona corretamente... mas se colocar um botão pra puxar o outro listview trava também.....
Ja tentei de várias formas, com TTask, com Thread e sem Thread, com synchronize, com Queue e nada.....

alguem me dá uma luz como resolver isso??
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Mobile com Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB