PDA

Ver la Versión Completa : Password en una dbgrid!!


acertij022
04-09-2004, 23:13:17
Hola Delphianos necesito ayuda; resulta que tengo que levantar de una base datos los password de los usuarios en un dbgrid pero quiero que muestre * en ves de la contraseña y al ingresar una nueva contraseña muestre * pero que guarde la contraseña correcta ¿se pude hacer eso? si se puede como seria.

gracias de antemano ;)

roman
05-09-2004, 22:06:26
Lograr que muestre los asteriscos es muy fácil usando el evento OnGetText del campo correspondiente:


if DisplayText
then Text := StringOfChar('*', Length(Table1['password']))
else Text := Table1['password'];


Pero lograr que aparezcan los asteriscos mientras editas parece ser mucho más difícil. Cuando editas una celda realmente está editando sobre un control InPlaceEditor que está protegido. Hice varios intentos tratando de desprotegerlo para asignar su propiedad PasswordChar sin ningún resultado.

Por otra parte, buscando en los grupos de noticias de Borland vi un comentario que si bien no responde a tu pregunta sí me parece muy sensato y algo que considerar. ¿Realmente quieres hacer algo así?

El punto es que normalmente cuando se pide a un usuario que introduzca una contraseña, se le pide que la escriba dos veces precisamente porque al no ver lo que escribe es muy fácil que se equivoque. Imaginate entonces la situación con un usuario editando toda una lista de contraseñas en las que no tiene posibilidad de confirmación. Los errores pueden estar a la orden del día.

// Saludos

marcoszorrilla
06-09-2004, 07:35:30
Yo utilizo la rejilla para que el administrador vea todos los usuarios, nombre que tienen pero no la contraseña, aunque el administrador pueda cambiarla, esto se hace en un formulario a parte en donde se presenta en un Tedit, el cual como ya ha dicho Román tiene la propiedad que buscas. Los riesgos de que alguien pueda modificar una contraseña que no puede leer ni comprobar los cambios son altos y a mi juicio no veo que utilidad pueda tener.

Aunque no soy partidario de lo que pides una posible solución, sería utilizar un TDbedit conectarlo al campo correspondiente y pintarlo sobre la celdilla que se edite, en el foro tienes ejemplos de como hacer esto aplicados a un casilla de verificación "Checkbox", que para el caso es lo mismo.

Un Saludo.

acertij022
06-09-2004, 14:25:46
Gracias a ambos tomaré en cuenta su experiencia y crearé una form para que coloque o modifique la clave con un campo de verificación. :cool: