Estou precisando de um auxílio, tenho uma thread que transmite via FTP(Indy 10), arquivos que estão em linhas de um dbgrid, quero faze um gauge mostrando o andamento da transferência na linha que aponta o arquivo que está sendo transmitido. O FTP está funcionando e coloquei o incrementação do gauge no eveno OnWork, só que está acontecendo que o gauge não está sendo exibido, peço a quem puder que me auxilie a resolver esse problema. Farei uma breve descrição dos eventos OnWorkBegin, OnWork e OnWokEnd:
Essas procedures estão na minha thread que responsável pela transmissão efetivamente.
Pergunta
Luciano Umbelino
Pessoal bom dia,
Estou precisando de um auxílio, tenho uma thread que transmite via FTP(Indy 10), arquivos que estão em linhas de um dbgrid, quero faze um gauge mostrando o andamento da transferência na linha que aponta o arquivo que está sendo transmitido. O FTP está funcionando e coloquei o incrementação do gauge no eveno OnWork, só que está acontecendo que o gauge não está sendo exibido, peço a quem puder que me auxilie a resolver esse problema. Farei uma breve descrição dos eventos OnWorkBegin, OnWork e OnWokEnd:
Essas procedures estão na minha thread que responsável pela transmissão efetivamente.
procedure EnviaArquivo.FTPWorkBegin(ASender: TObject;
AWorkMode: TWorkMode; AWorkCountMax: Int64);
begin
if frmLstLogTransm <> nil then //Aqui eu verifico se o form está criado para evitar acces violation
begin
frmLstLogTransm.Gauge1.Visible := True;
frmLstLogTransm.Gauge1.Progress := 0;
if AWorkCountMax > 0 then
frmLstLogTransm.Gauge1.MaxValue := AWorkCountMax
else
frmLstLogTransm.Gauge1.MaxValue := TamanhoArqFTP;
end;
end;
procedure EnviaArquivoFTPWork(ASender: TObject; AWorkMode: TWorkMode;
AWorkCount: Int64);
begin
if frmLstLogTransm <> nil then
begin
// frmLstLogTransm.Gauge1.Progress := AWorkCount; //havia tentando a incrementação dessa maneira mas vi que neste campo só contem
//o tamanho total do arquivo
frmLstLogTransm.Gauge1.Progress := frmLstLogTransm.Gauge1.Progress + 1; //Por isso fiz dessa outra maneira
application .processmessages;
end;
end;
procedure EnviaOcorrenciasCanalFD.FTPWorkEnd(ASender: TObject;
AWorkMode: TWorkMode);
begin
if frmLstLogTransm <> nil then
frmLstLogTransm.Gauge1.Progress := TamanhoArqFTP;
end;
frmlstLogTransm é o form que contem o dbgrid com a relação de arquivos a serem transmitidos.
Está acontecendo que no dbGrid não aparece o gauge com o progresso da transmissão.
Bem, desde já agradeço.
Link para o comentário
Compartilhar em outros sites
10 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.