Ver Mensaje Individual
  #3  
Antiguo 09-11-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
De hecho el evento OnExit no te servirá en el caso de un dbGrid ya que puedes moverte de celda sin salir del grid por lo que no se genera el evento OnExit.

Para este tipo de validaciones pienso que lo mejor es usar el evento OnValidate del campo. Si agregas los campos persistentes (menú contextual del dataset), seleccionas el campo en cuestión y asignas su evento OnValidate. En este evento verificas los datos y si algo está mal lanzas una excepción:

Código Delphi [-]
procedure TForm1.Table1UserValidate(Sender: TField);
begin
  if Sender.AsString = '' then
    raise Exception.Create('El campo está para almacenar datos así que ¡escriba un valor!');
end;

La ventaja es que la validación se lanzará en cualquier control que uses para acceder al campo, sea el grid, un dbedit u otro, impidiendo al usuario abandonar el control o celda. De esta forma no tienes que preocuparte de programar el evento OnExit para cada control que acceda al campo.

// Saludos
Responder Con Cita