• 0
Sign in to follow this  
mariquito

Como Faço Um Tratamento De Error Nesse Comando?

Question

como faço um tratamento de error nesse "WinExec('comando', SW_SHOW); " comando...tipo...c houver error ele executa outro comando

eu tentei esse e não deu certo...alguém sabe como?

Try

Try

WinExec('comando', SW_SHOW);

Except

showmessage('ERROR');

End;

Finally

showmessage('fim');

End;

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0
como faço um tratamento de error nesse "WinExec('comando', SW_SHOW); " comando...tipo...c houver error ele executa outro comando

eu tentei esse e não deu certo...alguém sabe como?

Try
  Try
    WinExec('comando', SW_SHOW);
  Except
    showmessage('ERROR');
  End;
Finally
  showmessage('fim');
End;
a tentativa de execução de um programa utilizando WinExec não gera uma Exception. você deve avaliar o resultado da função. Veja o que diz o help: "Return Value If the function succeeds, the return value is greater than 31. If the function fails, the return value is one of the following error values: Value Meaning 0 The system is out of memory or resources. ERROR_BAD_FORMAT The .EXE file is invalid (non-Win32 .EXE or error in .EXE image). ERROR_FILE_NOT_FOUND The specified file was not found. ERROR_PATH_NOT_FOUND The specified path was not found." Ou seja, você testa o retorno da função (você pode até utilizar uma variável para armazená-la) e se ele for ele for maior que 31 não houve qualquer erro. Do contrário, pode ser alguns dos citados no help. Ficaria algo assim:
...
  Erro := WinExec('comando', SW_SHOW);
  if Erro <= 31 then
    case Erro of
      0 : 
        ErroMsg := 'The system is out of memory or resources.';
      ERROR_BAD_FORMAT : 
        ErroMsg := 'The .EXE file is invalid (non-Win32 .EXE or error in .EXE image).';
      ERROR_FILE_NOT_FOUND :
        ErroMsg := 'The specified file was not found.';
      ERROR_PATH_NOT_FOUND :
        ErroMsg := 'The specified path was not found.';
    else
      ErroMsg := 'Erro não tratado';
    end
  else
    ErroMsg := 'Fim';
  ShowMessage(ErroMsg);
...

Abraços

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this