Ver Mensaje Individual
  #11  
Antiguo 06-05-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola oscarac.

Limitándome a los componentes estandard de Delphi, estuve probando a ver si le encontraba la vuelta de evitar el evento OnExit con la propiedad ActiveControl, GetPropInfo y GetPropValue.
Código Delphi [-]
...
function TForm1.ValidarCampo(AComponent: TComponent; Campo: Variant): Boolean;
begin
  Result:= True;
  if AComponent.Tag = 1 then  // 1 = valida
    Result:= VarIsEmpty(Campo);
end;

procedure TForm1.ActiveControlChange(Sender: TObject);
var
  PropInfo: PPropInfo;
begin
  PropInfo:= GetPropInfo(ActiveControl, 'Text');
  if (PropInfo <> nil) and not
   ValidarCampo(ActiveControl,GetPropValue(ActiveControl,'Text')) then
     ShowMessage('Error campo vacío');
  ...
end;
Y si bíen evalúa ,lo hace al ingreso del control y no a la salida, y ya estoy medio dormido para seguir probando...
De todas formas tendrías que reescribir código y no es lo que buscas según leo en uno de tus últimos mensajes.

Creo que crearte o derivar un componente que evalue el valor del campo en el evento OnExit va a ser la opción más sencilla. Pero no te extrañe que mañana encuentres respuesta, hay muchísimos que de este tema saben mas que yo.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 06-05-2011 a las 08:18:34.
Responder Con Cita