Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
TableView Y Hacer Que Una Celda No Muestre El Contenido
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje TableView Y Hacer Que Una Celda No Muestre El Contenido 
 
Hola a todos.
Es sabido que en una celda de un TableView se pueden usar varios controles para editar el contenido y por ejemplo en una uso un TextBox con la propiedad .Password = True lo que hace que al editar no se vea que caracteres componen el contenido. El problema surge cuando se deja de editar el contenido de la celda cambiando a otra, el contenido pasa a verse (supongo que con el contrl nativo que sera textbox).
Como puedo asignar "permanentemente" otro control distinto a la celda de un table view o aplicarle la propiedad .Password = True  ??

Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: TableView Y Hacer Que Una Celda No Muestre El Contenido 
 
En el evento data del tableview. Añade al final del evento data algo así como:

'suponiendo que en la columna 5 esté el password y en la variable clave, lo que se ha escrito...
if column=5 then
    tableview1[row,5].text=$string(len(clave),"*")
endif

 


(Escribo de memoria, lo mismo se me ha olvidado algo)

Saludos.
 




===================
No podemos regresar
 
última edición por shordi el Lunes, 22 Octobre 2018, 14:01; editado 1 vez 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: TableView Y Hacer Que Una Celda No Muestre El Contenido 
 
shordi escribió: [Ver mensaje]
...
    tableview1[row,5].text=$string(len(clave),"*")
...

Gracias Shordi, pero eso no funcionaria ya que el texto que esta en la celda luego debo trasladarlo a un archivo XML donde se almacena la configuración y al "cambiarlo" por una cadena de asteriscos de igual longitud no podria recuperar luego le "pasword".
De ahi la necesidad de ocultarlo con la propiedad .password ya que de esta manera el texto seguiria siendo la clave de acceso a la base de datos, solo que no se vería.
De todas maneras mas adelante pienso cambiar el sistema por otro mas seguro ya que guardar la clave en texto plano no es lo optimo.

Estoy trabajando en un modulo de configuración para incluir en los programas que hago que trabaje con XML. Ya esta casi listo, estoy puliendo los detalles. Tambien estoy usando colecciones, tema al que fui siempre reacio.

Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: TableView Y Hacer Que Una Celda No Muestre El Contenido 
 
¿Por qué usas el contenido de las celdas para trasladarlo a otro sitio? De algún lado has tenido que sacar los datos que muestras. Almacena la clave en esa fuente de datos usando el evento save del tableview, muestra los asteriscos en el tableview y traslada los valores de la fuente de datos al XML o donde sea que los guardes.
Esto es mucho más flexible que trasladar los datos visualizados. Puedes, por ejemplo, mostrar "Si" o "No" en el tableview para los campos lógicos ( o una imagen de un check ) y almacenar booleanos en la fuente de datos, etc., Sin contar el asunto éste de las password. Mostrar una imagen en la celda y almacenar el path en la fuente de datos, etc.
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: TableView Y Hacer Que Una Celda No Muestre El Contenido 
 
shordi escribió: [Ver mensaje]
...usando el evento save del tableview, muestra los asteriscos en el tableview y traslada los valores de la fuente de datos al XML o donde sea que los guardes.

El problema con este método es que _save aparecerá cuando guarde "lapassword" y luego otra vez cuando la celda cambie a "**********"
De todas maneras las variables y sus valores estan almacenadas en una collection que es donde se encuentra la información con la que se guardan los datos en el XML y es también donde los datos se cargan cuando se abre el formulario.
El tableview es utilizado no solo paraver los datos sino que tambien es usado para editarlos.

Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: TableView Y Hacer Que Una Celda No Muestre El Contenido 
 
Citar:
El tableview es utilizado no solo paraver los datos sino que tambien es usado para editarlos.


Sigo sin ver claro el problema. Te adjunto un ejemplo de lo que yo haría según lo que pides. Tienes un textarea que contiene los datos tipo .csv. Se editan en un tableview y sus cambios vuelven a ser reflejados en el textarea. Su aspecto es este:
captura_de_pantalla_de_2018_10_25_20_09_58

Las contraseñas quedan ocultas por los asteriscos.
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: TableView Y Hacer Que Una Celda No Muestre El Contenido 
 
ok, ya esta. Lo solucione contando las veces que se produce el evento _save para una celda dada aprovechando que el primero que se produce es el que me interesa y el segundo es el que aparece con los ******** que es el que descarto.

Shordi, me descargo el ejemplo y le echo un vistazo. gracias.

Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: TableView Y Hacer Que Una Celda No Muestre El Contenido 
 
shordi escribió: [Ver mensaje]
...Te adjunto un ejemplo de lo que yo haría según lo que pides...

Si, lo que quiero hacer es como el  ejemplo que pones, de hecho funciona muy parecido.
Respecto a la posibilidad de ver el texto que se escribe, no me gusta, pero es verdad que no es posible pedir una segunda escritura de clave para evitar poner mal. (es posible usando InputBox pero allí no es posible ocultar lo escrito)
Pero por otra parte el formulario que estoy diseñando es para gestionar la configuración de acceso a una determinada base de datos y es algo que se hace la primera vez que se define la conexión y luego no se vuelve a pedir al usuario que escriba la clave. Es mas el usuario por lo general no escribirá la clave de acceso a la BD.
El paso siguiente es la encriptación de dicha clave por algún medio o procedimiento ya que dejarla en un archivo de texto no es lo optimo.

Pero lo mas sencillo seria disponer de un control PASSWORD para que:
  • Oculte lo que se escribe
  • Pedir una segunda vez la clave
  • ¿Tal vez encriptarla?


Saludos.
 



 
última edición por tincho el Jueves, 25 Octobre 2018, 21:20; editado 1 vez 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: TableView Y Hacer Que Una Celda No Muestre El Contenido 
 
Hola

Yo es que de verdad no consigo entender la necesidad de que un gridview contenga contraseñas, ya sean ocultas o no. Yo sinceramente no pondría esa columna a la vista y si hace falta editarla, buscaría el método tradicional de hacerlo: mediante un formulario. Es mi opinión y puedo estar errado, ya que no conozco las necesidades de tu programa o de tu cliente.

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: TableView Y Hacer Que Una Celda No Muestre El Contenido 
 
jguardon escribió: [Ver mensaje]
...Yo es que de verdad no consigo entender la necesidad de que un gridview contenga contraseñas...

Bueno necesidad ninguna. Pero si editas el archivo de configuración con un Formulario/Panel/Textbox, ¿Este no estaría conteniendo la contraseña también? De la misma manera que el TextBox que esta anidado den la celda del TableView.

Las configuraciones las venia haciendo (y sigo haciendolo) con un formulario, y en esta oportunidad estoy usando un tableview a ver que posibilidades trae en vez de crear controles (texbox, combo, etc) por código.
De momento el código me resulta mas simple. Luego la idea la saque del mismo IDE de gambas de "Preferencias / Fragmentos de código" que parece usar un TableView y me pareció interesante explorar este control.
Luego ademas de mostrar asteriscos en vez de passwords se podrian mostrar otros controles como un ProgressBar

Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
0.00 0 0 0
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
No puede descargar archivos
No puede publicar eventos en el calendario