Cliente FTP travanco aplicação ao enviar ou receber arquivo do servidor
Boa noite moçada, estou desenvolvendo um programinha que baixa via FTP alguns arquivos de um determinado servidor.
PROBLEMA: Quando estou baixando alguma coisa o programa fica travado... O.o Me disseram que a solução era usar um TREAD, só que sou iniciante no assunto, tem como alguém me explicar como que funciona esse processo?
PROBLEMA: Quando estou baixando alguma coisa o programa fica travado... O.o Me disseram que a solução era usar um TREAD, só que sou iniciante no assunto, tem como alguém me explicar como que funciona esse processo?
Milrak Pessoa
Curtidas 0
Respostas
Bruno Leandro
03/04/2012
voce precisa baixar os arquivos em segundo plano, ou ficara baixando com a tela aberta, voce usa qual componente de ftp, o indy? se usa o indy no evento onwork um Application.ProcessMessages; talvez resolva se for o caso.
GOSTEI 0
Milrak Pessoa
03/04/2012
Bruno, isso mesmo, da paleta indy.
//Tem como fazer um passo-a-passo, não é que eu queria que vc faça pra mim, é que eu não tenho noção nenhuma com esses componentes.. Se tiver como explicar linha por linha seria melhor, mas já agradeço por ter respondido o post.. õ/
(O que devo usar? e como usar?)
//Tem como fazer um passo-a-passo, não é que eu queria que vc faça pra mim, é que eu não tenho noção nenhuma com esses componentes.. Se tiver como explicar linha por linha seria melhor, mas já agradeço por ter respondido o post.. õ/
(O que devo usar? e como usar?)
GOSTEI 0
Bruno Leandro
03/04/2012
assim como o button tem o onclick, o form oncreate, onclose, etc o componente do indy tem o onwork ai neste evento voce coloca o application.ProcessMessages, ficando +- como o evento abaixo.
procedure TForm.IdFTP1Work(ASender: TObject; AWorkMode: TWorkMode;
AWorkCount: Int64);
begin
Application.ProcessMessages;
end;
procedure TForm.IdFTP1Work(ASender: TObject; AWorkMode: TWorkMode;
AWorkCount: Int64);
begin
Application.ProcessMessages;
end;
GOSTEI 0
Milrak Pessoa
03/04/2012
Fiz como mencionado.. Só que ficou do mesmo jeito, a aplicação para do momento do downlooad e no momento do upload.. :/
procedure TForm1.ftpWork(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);
begin
Application.ProcessMessages;
end;
procedure TForm1.ftpWork(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);
begin
Application.ProcessMessages;
end;
GOSTEI 0
Alisson Santos
03/04/2012
amigo, você utilizou o debbuger para ver qual a linha que está dando erro, pois pode ser que ele não está suportando a transação de pacotes.
GOSTEI 0
Milrak Pessoa
03/04/2012
Alisson, o programa está funcionando perfeitamente... Ele baixar e sobe arquivos para o servidor, funcionando perfeitamente...
//O problema que, quando ele está fazendo esses processos (subindo ou baixando arquivo) é como se a aplicação travasse, mais se vc esperar direitinho até o final do download do arquivo, ele baixa e o programa volta a funcionar perfeitamente..
Conseguiu entender?
//O problema que, quando ele está fazendo esses processos (subindo ou baixando arquivo) é como se a aplicação travasse, mais se vc esperar direitinho até o final do download do arquivo, ele baixa e o programa volta a funcionar perfeitamente..
Conseguiu entender?
GOSTEI 0