Ver Mensaje Individual
  #3  
Antiguo 29-06-2004
Avatar de ruina
ruina ruina is offline
Miembro
 
Registrado: jun 2004
Posts: 196
Reputación: 20
ruina Va por buen camino
Cita:
lo quiero rellenar para una tabla en concreto y no sé como limitar para que sólo se pueda usar esa tabla.
pues entonces la respuesta es clara: No necesitas hacer un componente dbaware.
Otra cosa es que encuentres uno hecho y lo utilices (intenta siempre que sean con codigo fuente, ya que puedes encontrarte con alguna situación en la que necesites modificar su comportamiento )


Puedes obtener un comportamiento similar simplemente con el evento OnDataChange del Datasource, que te pasa el campo que cambia ó nil si cambian todos los campos (por ejemplo al hacer un next). Plantalo en el form y lo enganchas a la tabla, aunque ya tengas otro en el datamodule, funcionan ambos.
Luego en el Onchange o en el Onexit del control (en ambos mejor) haces lo que corresponda con el campo o con otro control.

Lo de no usar ningun dbaware.... pues me parece que estas desperdiciando un tiempo valiosisimo, igual simplemente te falta un poco de "enfoque"
Cita:
DB-aware no lo utilizo porque me da sensacion de no tener el control
supongo que es el sindrome del usuario mimado, es decir, el tener que controlar la introducción de todos y cada uno de los datos, que no pueda meter letras en campos numericos, que no meta negativos o decimales si no lo soporta, que meta las cadenas sin espacios, que meta la fecha válida... blablabla...
¡que le corten la cabeza!

Si un usuario se enfrenta al campo Numero de factura y se le ocurre meter "42sfr" lo menos que se merece es una ventanita de error "42sfr no es un número entero válido" , si intenta meter 29/2/99 que le zurzan al usuario. Tu aplicación es para trabajar con ella, no para hacer el tonto.

Tu usa controles Dbaware, que el control lo tienes igualmente, pero en otro sitio.

En lugar de preocuparte por la "entrada de datos" preocupate por la "consistencia de los datos" es decir, que tu tabla no admita valores erroneos, que si encuentra alguno lance una excepción al usuario del tipo "la fecha final no puede ser anterior a la fecha inicial"... Si no entiende este mensaje será mejor que cambie el ratón por la azada.

El modelo de eventos es Esencial para programar en delphi (y en cualquier otra cosa). Una vez que empieces a "fiarte" de los eventos empezaras a manejar Excepciones, raise por aqui, raise por alla... eso si, intenta, por todos los medios, no usar try except si lo que quieres es cambiar el texto del error (por ejemplo del ingles al castellano) hay otros medios de conseguir errores en castellano que plagar el código de try excepts, como por ejemplo modificar una copia del fichero SysConst.pas y añadirlo a tu proyecto (lo tendras para descargar en la red)


Si quieres literatura al respecto te recomiendo cualquier cosa de Ian Marteens ("la cara ocualta de deplhi")
Responder Con Cita