Samuel Sewaybricker Postado Dezembro 26, 2014 Denunciar Share Postado Dezembro 26, 2014 Olá a todos. Estou com um problema em minha aplicação na qual quando ocorre algum erro sistêmico o mesmo é tratado pelo AppEvent, ai a mensagem aparece normal, porém logo após o OK é lançado a mesma mensagem mas como erro do Delphi. Alguma sugestão? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Dezembro 26, 2014 Denunciar Share Postado Dezembro 26, 2014 Dê um exemplo do erro e da mensagem de erro Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Samuel Sewaybricker Postado Dezembro 29, 2014 Autor Denunciar Share Postado Dezembro 29, 2014 <script type='text/javascript'>window.mod_pagespeed_start = Number(new Date());</script> Dê um exemplo do erro e da mensagem de erro Por exemplo, no validate de um campo eu verifico se já existe o código que estou tentando inserir, caso viole esta regra eu dou um raise Exception.Create('Mensagem'); Este raise vai para AppEvents onde é tratado e exibido em um modal, até ai tudo certo, o problema é que após o OK da mensagem a mesma é exibida novamente porém com o formato do raise. Segue imagens: Imagem do AppEvents https://uploaddeimagens.com.br/imagens/erro1-png--22 Imagem do erro repitido https://uploaddeimagens.com.br/imagens/erro2-png--33 Desde já agradeço. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Dezembro 29, 2014 Denunciar Share Postado Dezembro 29, 2014 faça um teste tire o raise Exception.Create('Mensagem'); e veja o que ocorre obs: siga a execução do código com o break point ( debugger ) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Samuel Sewaybricker Postado Dezembro 29, 2014 Autor Denunciar Share Postado Dezembro 29, 2014 <script type='text/javascript'>window.mod_pagespeed_start = Number(new Date());</script> faça um teste tire o raise Exception.Create('Mensagem'); e veja o que ocorre obs: siga a execução do código com o break point ( debugger ) Mas como vou forçar o erro sem o raise? O AppEvents é acionado no onException, não sei se ajuda, mas estou convertendo o sistema de delphi4 para delphi7, no 4 não tenho esse problema. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Dezembro 29, 2014 Denunciar Share Postado Dezembro 29, 2014 mostre o codigo que esta no onException do AppEvents Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Samuel Sewaybricker Postado Dezembro 29, 2014 Autor Denunciar Share Postado Dezembro 29, 2014 (editado) procedure TMainForm.AppEvents1Exception(Sender: TObject; E: Exception); var Msg: TMensagemErroForm; begin try Msg := TMensagemErroForm.Create(Application); ERROFECH := False; {if E is EODBC then begin if (EODBC(E).Native = 0) and (EODBC(E).State = 'HY106') and (EODBC(E).RetCode=-1) then BEGIN ERROFECH := True; exit; END; end;} if E.ClassNameIs('Exception') then begin Msg.Mensagem0.Caption := E.Message; Msg.Mensagem1.Caption := ''; Msg.Original.Lines.Clear; if(TABELATUR <> '') THEN Log_Sistema(MainForm.EmpresaFilial, TABELATUR, operacaotur, PEDTURNUM, MENSAGEMERRO, E.Message ); Msg.ShowModal; end; finally Msg.Free; end; end; Editado Dezembro 29, 2014 por Samuel Sewaybricker Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Dezembro 29, 2014 Denunciar Share Postado Dezembro 29, 2014 existe a necessidade de mostrar o erro para o usuario ou voce gostaria de guardar as mensagens de erro em um arquivo de log ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Samuel Sewaybricker Postado Dezembro 29, 2014 Autor Denunciar Share Postado Dezembro 29, 2014 <script type='text/javascript'>window.mod_pagespeed_start = Number(new Date());</script> existe a necessidade de mostrar o erro para o usuario ou voce gostaria de guardar as mensagens de erro em um arquivo de log ? Sim, preciso mostrar a mensagem para o usuário. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Dezembro 29, 2014 Denunciar Share Postado Dezembro 29, 2014 faça um teste com esse código .... o erro gerado vai para um arquivo de log faça algumas alterações para o seu uso procedure TApres.ApplicationEvents1Exception(Sender: TObject; E: Exception); var NomeDoLog: string; Arquivo: TextFile; begin NomeDoLog := ChangeFileExt(Application.Exename, '.log'); AssignFile(Arquivo, NomeDoLog); if FileExists(NomeDoLog) then Append(arquivo) { se existir, apenas adiciona linhas } else ReWrite(arquivo); { cria um novo se não existir } try WriteLn(arquivo, DateTimeToStr(Now) + ':' + E.Message); WriteLn(arquivo,'----------------------------------------------------------------------'); Application.ShowException(E); finally CloseFile(arquivo) end; end; abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Samuel Sewaybricker Postado Dezembro 30, 2014 Autor Denunciar Share Postado Dezembro 30, 2014 <script type='text/javascript'>window.mod_pagespeed_start = Number(new Date());</script> faça um teste com esse código .... o erro gerado vai para um arquivo de log faça algumas alterações para o seu uso procedure TApres.ApplicationEvents1Exception(Sender: TObject; E: Exception); var NomeDoLog: string; Arquivo: TextFile; begin NomeDoLog := ChangeFileExt(Application.Exename, '.log'); AssignFile(Arquivo, NomeDoLog); if FileExists(NomeDoLog) then Append(arquivo) { se existir, apenas adiciona linhas } else ReWrite(arquivo); { cria um novo se não existir } try WriteLn(arquivo, DateTimeToStr(Now) + ':' + E.Message); WriteLn(arquivo,'----------------------------------------------------------------------'); Application.ShowException(E); finally CloseFile(arquivo) end; end; abraço Obrigado pela ajuda mas não é essa solução que preciso.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Dezembro 30, 2014 Denunciar Share Postado Dezembro 30, 2014 tire esse comando Msg.ShowModal; faça o teste e retorne o resultado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Samuel Sewaybricker Postado Dezembro 30, 2014 Autor Denunciar Share Postado Dezembro 30, 2014 <script type='text/javascript'>window.mod_pagespeed_start = Number(new Date());</script> tire esse comando Msg.ShowModal; faça o teste e retorne o resultado Se eu retirar este comando a mensagem tratada não irá aparecer, somente o raise. O que estou tentando fazer é a situação contrária, não aparecer a mensagem do raise e sim a do AppEvent. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Dezembro 30, 2014 Denunciar Share Postado Dezembro 30, 2014 tente isso: va no Menu do delphi > Tools > Debugger Options... desmarque Integrated debugging compile e rode o programa com isso somente as mensagens do AppEvent é que serão mostradas abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Samuel Sewaybricker Postado Janeiro 5, 2015 Autor Denunciar Share Postado Janeiro 5, 2015 <script type='text/javascript'>window.mod_pagespeed_start = Number(new Date());</script> tente isso: va no Menu do delphi > Tools > Debugger Options... desmarque Integrated debugging compile e rode o programa com isso somente as mensagens do AppEvent é que serão mostradas abraço Obrigado pela resposta, mas não funcionou. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Samuel Sewaybricker Postado Janeiro 5, 2015 Autor Denunciar Share Postado Janeiro 5, 2015 <script type='text/javascript'>window.mod_pagespeed_start = Number(new Date());</script> <script type='text/javascript'>window.mod_pagespeed_start = Number(new Date());</script> tente isso: va no Menu do delphi > Tools > Debugger Options... desmarque Integrated debugging compile e rode o programa com isso somente as mensagens do AppEvent é que serão mostradas abraço Obrigado pela resposta, mas não funcionou. Retire o que eu disse, OBRIGADO!! Resolvido Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Samuel Sewaybricker
Olá a todos.
Estou com um problema em minha aplicação na qual quando ocorre algum erro sistêmico o mesmo é tratado pelo AppEvent, ai a mensagem aparece normal, porém logo após o OK é lançado a mesma mensagem mas como erro do Delphi.
Alguma sugestão?
Link para o comentário
Compartilhar em outros sites
15 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.