Mensajes de error en un DBGrid

faom
31 de Octubre del 2003
Resulta que tengo un DBGrid con un campo de tipo entero sin signo y otro de tipo fecha/hora, pues bien, tanto en el primero cuando se le introde un valor negativo como en el segundo cuando se le pone un valor de hora incorrecta, autom谩ticamente me da un mensaje EN INGL脡S diciendo que el valor introducido es incorrecto. La pregunta es, ¿como puedo "interceptar" ese mensaje para mostrarlo en espa帽ol?

Un saludo y gracias de antemano,
Paco O.

faom
31 de Octubre del 2003
Bueno, ya he encontrado la soluci贸n a mi problema, para el que le pueda interesar:
El problema era que el DBGrid autom谩ticamente lanzaba una excepci贸n del tipo EConvertError y mostraba dicho mensaje de error en ingl茅s. Pues bien, la soluci贸n est谩 en escribir un procedimiento para controlar las excepciones que no son tratadas en el c贸digo. Para ello hay que a帽adir los siguiente al formulario:

oid __fastcall TForm1::FormCreate(TObject *Sender)
{
Application->OnException = AppException;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::AppException(TObject *Sender, Exception *E)
{
if (AnsiString(E->ClassName()) == "EConvertError") {
ShowMessage(" **nuevo mensaje** ");
}
else
Application->ShowException(E); // El resto de excepciones se deben seguir tratando igual.
}


Un saludo,
Paco.

mfercor
31 de Octubre del 2003
Pues se utiliza la siguiente estructura:

try
{Lo que se quiera efectuar}
except
on E:Exception do {Lo que se quiera hacer en caso de ocurrir un error}
end;