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 

Resultar erro

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


Registrado: Quarta-Feira, 18 de Julho de 2012
Mensagens: 1

MensagemEnviada: Qua Jul 18, 2012 1:03 am    Assunto: Resultar erro Responder com Citação

eu peguei um codigo de atualizao do batera que posto aqui no forum... como faço para exibir uma janela informando que aconteceu algum erro na hora da atualizacao?

Código:
var
  ArquivoLocal, ArquivoFTP: TIniFile;
  VersaoLocal, VersaoFTP: string;
begin
  if FileExists('C:\Aplicativo\VersaoFTP.ini') then
    DeleteFile('C:\Aplicativo\VersaoFTP.ini'); // deleta o arquivo baixado do site

  IdFTP1.Connect(); // conecta ao FTP

  if (IdFTP1.Connected) then
  begin
    IdFTP1.Get('atualizacao/VersaoFTP.ini', 'C:\Aplicativo\VersaoFTP.ini', True); // baixa o INI do site para verificar a versão

    arquivoLocal := TIniFile.Create('C:\Aplicativo\Versao.ini'); // abre o arquivo INI no diretório da aplicação
    versaoLocal  := arquivoLocal.ReadString('Informacoes', 'Versao', ''); // obtém a versão do sistema
    arquivoLocal.Free;

    arquivoFTP := TIniFile.Create('C:\Aplicativo\VersaoFTP.ini'); // abre o arquivo INI baixado do site
    versaoFTP  := arquivoFTP.ReadString('Informacoes', 'Versao', ''); // obtém a versão do arquivo no site
    arquivoFTP.Free;

    if (versaoLocal = versaoFTP) then // compara as versões - se for igual, exibe a mensagem de informação
    begin
      MessageDlg('O sistema já está atualizado.', mtInformation, [mbOK], 0);
      DeleteFile('C:\Aplicativo\VersaoFTP.ini'); // deleta o arquivo baixado do site
    end
    else // se for diferente, exibe a mensagem para atualização
    begin
      if MessageDlg('Deseja atualizar agora?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
      begin
        IdFTP1.Get('atualizacao/Aplicativo.exe', 'C:\Aplicativo\Atualizacao\Aplicativo.exe', true); // baixa a atualização
        { aqui você coloca o código pra fazer a atualização (copiar o executavel, rodar Script, etc...) }
        arquivoLocal := TIniFile.Create('C:\Aplicativo\Versao.ini');
        arquivoLocal.WriteString('Informacoes', 'Versao', versaoFTP); // e finalmente atualiza a versão no arquivo INI
        arquivoLocal.Free;
      end;
    end;
   
    IdFTP1.Disconnect; // desconecta do FTP
 
  end;
end;


vlw
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Caduzera
Profissional
Profissional


Registrado: Terça-Feira, 29 de Julho de 2008
Mensagens: 656

MensagemEnviada: Qua Jul 18, 2012 8:33 am    Assunto: Responder com Citação

Amigo, não sei se é bem isso, mas de forma bem simples:

Citação:

var
ArquivoLocal, ArquivoFTP: TIniFile;
VersaoLocal, VersaoFTP: string;
begin
Try
if FileExists('C:\Aplicativo\VersaoFTP.ini') then
DeleteFile('C:\Aplicativo\VersaoFTP.ini'); // deleta o arquivo baixado do site

IdFTP1.Connect(); // conecta ao FTP

if (IdFTP1.Connected) then
begin
IdFTP1.Get('atualizacao/VersaoFTP.ini', 'C:\Aplicativo\VersaoFTP.ini', True); // baixa o INI do site para verificar a versão

arquivoLocal := TIniFile.Create('C:\Aplicativo\Versao.ini'); // abre o arquivo INI no diretório da aplicação
versaoLocal := arquivoLocal.ReadString('Informacoes', 'Versao', ''); // obtém a versão do sistema
arquivoLocal.Free;

arquivoFTP := TIniFile.Create('C:\Aplicativo\VersaoFTP.ini'); // abre o arquivo INI baixado do site
versaoFTP := arquivoFTP.ReadString('Informacoes', 'Versao', ''); // obtém a versão do arquivo no site
arquivoFTP.Free;

if (versaoLocal = versaoFTP) then // compara as versões - se for igual, exibe a mensagem de informação
begin
MessageDlg('O sistema já está atualizado.', mtInformation, [mbOK], 0);
DeleteFile('C:\Aplicativo\VersaoFTP.ini'); // deleta o arquivo baixado do site
end
else // se for diferente, exibe a mensagem para atualização
begin
if MessageDlg('Deseja atualizar agora?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
IdFTP1.Get('atualizacao/Aplicativo.exe', 'C:\Aplicativo\Atualizacao\Aplicativo.exe', true); // baixa a atualização
{ aqui você coloca o código pra fazer a atualização (copiar o executavel, rodar Script, etc...) }
arquivoLocal := TIniFile.Create('C:\Aplicativo\Versao.ini');
arquivoLocal.WriteString('Informacoes', 'Versao', versaoFTP); // e finalmente atualiza a versão no arquivo INI
arquivoLocal.Free;
end;
end;

IdFTP1.Disconnect; // desconecta do FTP

end;
Except
On E : Exception Do
ShowMessage(E.Message);
End;

end;


Nesse caso eu coloquei apenas um ShowMessage, mas você pode colocar um formulário, ou o que desejar ...

Abs
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
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