FTP Via Indy 7

Delphi

20/09/2010

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

Curtidas 0

Respostas

Leonardo Xavier

Leonardo Xavier

20/09/2010

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.
GOSTEI 0
Paulo Andrade

Paulo Andrade

20/09/2010

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.
GOSTEI 0
Paulo Andrade

Paulo Andrade

20/09/2010

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.
GOSTEI 0
Marcelo Diniz

Marcelo Diniz

20/09/2010


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

GOSTEI 0
Paulo Andrade

Paulo Andrade

20/09/2010


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?
GOSTEI 0
Marcelo Diniz

Marcelo Diniz

20/09/2010


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;
GOSTEI 0
Paulo Andrade

Paulo Andrade

20/09/2010

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?
GOSTEI 0
Marcelo Diniz

Marcelo Diniz

20/09/2010


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.

GOSTEI 0
Paulo Andrade

Paulo Andrade

20/09/2010


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!
GOSTEI 0
Marcelo Diniz

Marcelo Diniz

20/09/2010

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


GOSTEI 0
Marcelo Diniz

Marcelo Diniz

20/09/2010

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.
GOSTEI 0
POSTAR