Raise Exception.Create(´´); Não exibe a mensagem!

Delphi

15/04/2009

Bom é o seguinte no OnValidate de um Field coloquei o comando raise e o exception.create, mas a mensagem nao é exibida.

procedure Tdmdados.clienteCLINOMEValidate(Sender: TField);
begin
   if trim(clienteCLINOME.AsString) = ´´ then
      raise erro.Create(´O campo não pode ser NULO!´);
end;


O que há de errado??


Xtreme

Xtreme

Curtidas 0

Respostas

Ara.es

Ara.es

15/04/2009

Tente programar o evento OnReconcileError do ClientDataSet, escreva um código para exibir a mensagem:

Exemplo:
  ShowMessage(E.Message);


Veja se funciona!! Flw!


GOSTEI 0
Lehapan

Lehapan

15/04/2009

utilize o
DatabaseError( ´Sua mensagem´ );


espero ter ajudado.


GOSTEI 0
Xtreme

Xtreme

15/04/2009

Bom tentei utilizar os exemplos citados mas nao obtive sucesso.
É estranho pois quando rodo o sistema pelo delphi a execao é criada, mas somente pelo executavel nao.

Uso delphi 7 e WinXP.

Se alguem tiver uma luz.


GOSTEI 0
Marco Salles

Marco Salles

15/04/2009

Bem .. Se existir algum Bloco Try Except protegendo o Bloco
nenhuma mensagem sera Exibida

Por exemplo

procedure TForm1.Button2Click(Sender: TObject);
begin
try
 if edit1.Text = ´´ then
 Raise exception.Create(´erro´);
except
 end;
end;


Tb existe alguma configuraçoes Na IDE que inibi a Mensagem de Erro
mas no Delphi ... Pelo que vc esta dizendo no Delphi aparece a Mensagem
no Aplicativo não informa Nada

Paleativo , para isto é vc usar
Showmessage(´´) seguido do Abort < Exceção Silenciosa >


GOSTEI 0
Xtreme

Xtreme

15/04/2009

Nao, nao existe nenhum bloc de try except protegendo, e me equivoquei ao falar que pelo delphi aparece a mensagem, na realida ocorre a execao, mas nao é exibida a mensagem.

O estranho é que em outras aplicacoes que possuo isso funcionaca tranquilamente, sem problema algum.

A maneira que vc me passou funciona, fico grato pela ajuda, mas ainda sim, quero entender o que está causando essa falha.


GOSTEI 0
.lg.

.lg.

15/04/2009

Eu costumo usar :
Application.MessageBox(PChar(´Deu erro... se vira!!!´), Pchar(´Erro´), MB_OK+MB_ICONERROR);


É muito bom. Eu gosto. [b:aee4f1b935]MessageBox[/b:aee4f1b935] vem da unit Forms.
Espero que ajude.

Att,
.lg.


GOSTEI 0
POSTAR