Fórum FTP Via Indy 7 #386742

20/09/2010

0

Estou utilizando o Indy mas quando está executando o sistema fica oculto fica congelada a tela e não exibe a barra de Progresss.   Já encontrei alguns exemplos, mas o que eu quero na verdade é entender porque ele congela e o que pode ser feito para não ficar oculto nem congelar o sistema. Qual o comando preciso chamar ou algo do tipo, como funciona.
Paulo Andrade

Paulo Andrade

Responder

Posts

21/09/2010

Leonardo Xavier

Teria como vc colocar parte do código aqui para vericarmos ele? Pois se ele esta congelando sua tela, ou travando o seu sistema é porque tem algum comando que esta sendo executado com maior exigencia de processamento, e ai teria que ver como deixa-lo mais leve.
Responder

Gostei + 0

22/09/2010

Paulo Andrade

Teria como vc colocar parte do código aqui para vericarmos ele? Pois se ele esta congelando sua tela, ou travando o seu sistema é porque tem algum comando que esta sendo executado com maior exigencia de processamento, e ai teria que ver como deixa-lo mais leve.
  O código é básico de Indy 7 do IDFTP. Contec, Get.   Ele não trava o sistema operacional não, ele trava a janela quando está fazendo o download do meu servidor FTP, a tela de Download do meu Update fica congelada de  forma que não exibe o progressbar (barra de progresso).   Queria exibir as informações para que o usuário saiba o que está acontecendo.   Tipo:   Conectando...   Localizando arquivo...   Baixando arquivo NomeArquivo.Ext   ||||||||||||||||| 10% ||||||||||||||||||     O sistema está funcionando bem, baixa as atualizações certinho, consegue atualizar meu sistema de forma perfeita o meu único problema é esse ae. O Cliente não sabe o que está acontecendo.
Responder

Gostei + 0

20/10/2010

Paulo Andrade

Eae pessoal, nenhuma luz ainda?   Estou com o sistema rodando de forma excelente, mas falta essa parte p passar informações para o cliente para ter idéia de quanto falta para concluir a atualização.
Responder

Gostei + 0

20/10/2010

Marcelo Diniz


Eae pessoal, nenhuma luz ainda?
 
Estou com o sistema rodando de forma excelente, mas falta essa parte p passar informações para o cliente para ter idéia de quanto falta para concluir a atualização.
 

Você utilizou  application .processmessages ?
procedure TForm1.IdFTP1Work(ASender: TObject; AWorkMode: TWorkMode;  AWorkCount: Integer);begin  Gauge1.Progress := AWorkCount;  application .processmessages;end;

Link do meu projeto como exemplo:http://www.ligteltelecom.com.br/Atualiza.rar

Responder

Gostei + 0

21/10/2010

Paulo Andrade


Eae pessoal, nenhuma luz ainda?
 
Estou com o sistema rodando de forma excelente, mas falta essa parte p passar informações para o cliente para ter idéia de quanto falta para concluir a atualização.
 

Você utilizou  application .processmessages ?

procedure TForm1.IdFTP1Work(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCount: Integer);
begin
  Gauge1.Progress := AWorkCount;
  application .processmessages;
end;

Link do meu projeto como exemplo: http://www.ligteltelecom.com.br/Atualiza.rar

Sua dica funcionou perfeitamente, mas como posso definir o tamanho do arquivo para o max do Gauge1?
Responder

Gostei + 0

21/10/2010

Marcelo Diniz


Sua dica funcionou perfeitamente, mas como posso definir o tamanho do arquivo para o max do Gauge1?
 

Use a função IdFTP1.Size
var   TamanhoFile : Integer ;
  TamanhoFile := IdFTP1.Size(Arquivo);

procedure TForm1.IdFTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;  AWorkCountMax: Integer);begin     //limpa a barra de progresso  Gauge1.Progress := 0;  //define o tamanho máximo para o Gauge  if AWorkCountMax > 0 then    Gauge1.MaxValue := AWorkCountMax  else    Gauge1.MaxValue := TamanhoFile ;    //LbBytes.Caption := strByteSize(bytesToTransfer);    application .processmessages;     end;
Responder

Gostei + 0

21/10/2010

Paulo Andrade

Como todo programa, ta ótimo, mas pode ficar melhor rsrsrs   Pessoal vlw mesmo pelas dicas, me ajudou muito!   Mas para ficar ainda melhor, seria possível eu fazer download de uma lista de arquivos?
Responder

Gostei + 0

21/10/2010

Marcelo Diniz


Como todo programa, ta ótimo, mas pode ficar melhor rsrsrs
 
Pessoal vlw mesmo pelas dicas, me ajudou muito!
 
Mas para ficar ainda melhor, seria possível eu fazer download de uma lista de arquivos?
 

Acredito que sim, basta salvar a lista tipo numa variável stringlist, fazer uma função que ao terminar um download seja já executado outro que esta na lista.

Eu quero fazer um multdownloader para baixar vários arquivos ao mesmo tempo, mais até agora não consegui.

Responder

Gostei + 0

21/10/2010

Paulo Andrade


Como todo programa, ta ótimo, mas pode ficar melhor rsrsrs
 
Pessoal vlw mesmo pelas dicas, me ajudou muito!
 
Mas para ficar ainda melhor, seria possível eu fazer download de uma lista de arquivos?
 

Acredito que sim, basta salvar a lista tipo numa variável stringlist, fazer uma função que ao terminar um download seja já executado outro que esta na lista.

Eu quero fazer um multdownloader para baixar vários arquivos ao mesmo tempo, mais até agora não consegui.

Amigão, então você está no lugar certo pq eu estou tentando fazer o mesmo.   Derrepente agente acaba conseguindo, essa sua idéia realmente pode resolver o problema.   Pode ser feito um Loop e cada vez q conluir um arquivo, ele inicia o próximo até concluir.   Vou ver o que consigo implementar e se conseguir posto aki p vc...   vlw!
Responder

Gostei + 0

21/10/2010

Marcelo Diniz

Eu até tenho o componente Multi Downloader e outros da Clever Suite, mais o que desejo criar é um tipo emule com vários arquivos baixando e com progressbar mostrando o andamento do download.
http://www.clevercomponents.com/products/inetsuite/multidownloader.asp


Responder

Gostei + 0

27/10/2010

Marcelo Diniz

Achei um demo de um componente da Clever Suite que irá lhe atender bem
http://www.clevercomponents.com/downloads/inetsuite/getfilevcl.asp?f=%2Fdemo%2Finetsuite%2FWebUpdateApp.zip&d=Web+Update+Demo
Ele utiliza uma lista em XML e baixa os arquivos que estão nesta lista.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar