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 

Troca de informações entre classes.

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
mastersoftware
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 30 de Mai de 2008
Mensagens: 178

MensagemEnviada: Qui Abr 18, 2019 8:47 am    Assunto: Troca de informações entre classes. Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
douglas_fc
Profissional
Profissional


Registrado: Quarta-Feira, 26 de Mai de 2010
Mensagens: 672

MensagemEnviada: Ter Abr 23, 2019 10:02 am    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> 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