Antonio,
Me explico un poco mas :
En un dialog para ingresar un item nuevo al catalogo tengo digamos unos 30 datos por llenar todos diferentes : fechas, numericos, textos, etc.
Al momento de grabar el registro, meto todos los datos a un arreglo que mando a una funcion, esta funcion se encarga en "convertirlo" en comando MySql para agregarlo a la tabla.
aadd( aVpDts2Sav, { nKFol2Psd,aVtaDts[1],date(),cXOprTim,aVtaDts[ 4],aKurUsr[1], ;
  lbCapVta:aArrayData[nQ,1],lbCapVta:aArrayData[nQ,3],lbCapVta:aArrayData[nQ,4], ;
  lbCapVta:aArrayData[nQ,5],lbCapVta:aArrayData[nQ,6],lbCapVta:aArrayData[nQ,7], ;
  lbCapVta:aArrayData[nQ,8],cOprXStr,cObs2Sav } )
  NwInsReks( "VTASPSD", cVpFlds2Sav, aVpDts2Sav )
Y me regresa algo como esto :
INSERT INTO VTASPSD ( pidcns,poprt,poprd,poprx,pcstid,pitmusr,pitmid,pitmuntx,pitmuns,pitmdscp,pitmdsci,pitmunty,pitmimp,pitmdet,poprobs,cubx ) VALUES ( 110.00,1,'2010-07-30','10:50:51',756,'','VcYgeqVqz',0.00,1.00,0,0,0.00,0.0000,'{ ´VcYgeqVqz´, ´SYD RESORTE TRAS´, 0.00, 1.00, 0, 0, 0.00, 0.0000, ´F4304´, ´x4bclhiFZ´, 0, 1, 0, ´SYF4304´, 0, ´´, ´´, ´SYD´, ´RESORTE SUSPENSION/MISC´, ´5N3zfN1jT´, 0.00, 0, 0 }','',101 ) ;
Y solo hasta que le llega el dato a la funcion puedo saber si hay algo que no deba procesarse, hablando del "injection" puede ser algun comando, o todo caso un caracter : ' \
Esto es lo que quisiera poder "atrapar" desde que estan tecleando, como bien dices lo puedo hacer con un valid pero tendria que ponerselo en todos lados, si es posible dentro de la clase, todo seria en automatico.
Saludos