|
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
mastersoftware Aprendiz
Registrado: Sexta-Feira, 30 de Mai de 2008 Mensagens: 187
|
Enviada: Qui Abr 18, 2019 8:47 am Assunto: Troca de informações entre classes. |
|
|
Bom dia pessoal,
Gostaria da ajuda de vocês em uma situação que não estou conseguindo evoluir
Tenho a seguinte situação :
Tenho uma Thread chamada TManipulaBackup que é responsável por todo o processo de manipulação de backup, ou seja todos os processos são centralizados nela.
Essa Thread por sua vez invoca um método que está dentro dela, que invoca a classe FTP para fazer o trabalho de download do arquivo.
Chamada na aplicação principal :
ManipulaBackup := tManipulaBackup.Create(True);
ManipulaBackup.arquivoBaixar :=
trim(dm.quRepositorioarquivo.AsString);
ManipulaBackup.acao := 'BaixarArquivoFTP';
ManipulaBackup.FreeOnTerminate := True;
ManipulaBackup.Start;
Método invocado pela aplicação :
procedure tManipulaBackup.baixarArquivo;
var
ttFtp: clFtp;
begin
try
try
ttFtp := clFtp.Create;
ttFtp.arquivoBaixar := arquivoBaixar;
ttFtp.Email := 'clebermanoprogramador@gmail.com';
ttFtp.baixarArquivo; <-- Chamada na classe que faz o trabalho de download
except
on E: Exception do
gravaLog('BaixarArquivoFTP', E.Message, 1)
end;
finally
FreeAndNil(ttFtp);
end;
end;
E Por fim a classe final FTP que executa o trabalho.
procedure clFtp.baixarArquivo;
var
sCaminho: String;
begin
sCaminho := trim(ExtractFilePath(GetCurrentDir) + '\Repository');
try
try
// Cria diretorio Local
if not DirectoryExists(sCaminho) then
ForceDirectories(sCaminho);
if ConnectFtp then
With tIdFtp1 do
begin
// Receber o arquivo do servidor
changeDir('/Backup/' + Femail);
Get(Farquivobaixar, sCaminho + '\' + Farquivobaixar, true);
end;
except
on E: Exception do
gravaLog('BaixaArquivoFTP', E.Message, 1)
end;
finally
tIdFtp1.Disconnect;
FreeAndNil(tIdFtp1);
end;
end;
Até ai tudo bem, tudo funcionando.
Porém eu preciso colocar em um progressbar que está na tela principal da aplicação, onde houve a chamada do processo, o progresso do download,
e eu não imagino como posso fazer isso.
Alguem poderia me ajudar, como eu trocaria essa informação do download que está em uma classe separada para um objeto que está na tela principal ?
Obrigado. |
|
Voltar ao Topo |
|
|
douglas_fc Profissional
Registrado: Quarta-Feira, 26 de Mai de 2010 Mensagens: 672
|
Enviada: Ter Abr 23, 2019 10:02 am Assunto: |
|
|
Bom não sei se entendi muito bem, mais se vc definir uma variável no teu form principal ou mesmo uma property do tipo "TSuaClasse", não teria acesso as informações da mesma? _________________ O conhecimento só tem valor quando compartilhado!
Douglas Sousa |
|
Voltar ao Topo |
|
|
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|