Ver Mensaje Individual
  #4  
Antiguo 13-02-2012
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
Si lees la ayuda del evento OnValidate, verás que para rechazar un valor debes lanzar una excepción. Al hacer esto, el foco no debería perderse puesto que, de hecho, la validación se hace antes de que se abandone el control.

En tu caso, podrías hacer así el evento OnValidate de tu campo:

Código Delphi [-]
procedure TF_ModulDades.ParticipacioDIVENDRESValidate(Sender: TField);
begin
  ParticipacioDIVENDRES.Value := UpperCase(ParticipacioDIVENDRES.Value);
  if (ParticipacioDIVENDRES.Value <> 'S') and (ParticipacioDIVENDRES.Value <> 'N') then
    raise Exception.Create('Valor no vàlid, sols S o N');
end;

O sea, en lugar de un simple ShowMessage, lanzas una excepción.

// Saludos
Responder Con Cita