Hola a todos.
Tengo un GridView dividido en una serie de columnas y filas. Cuando el usuario pulse en una determinada casilla quiero que el programa mande un mensaje. Pero el problema que me encuentro es que no puedo usar un if tal que así.
Por supuesto que esto es un ejemplo, se supone que esto es igual, pues para gambas no es así. ¿Como puedo hacer este tipo de comparaciones? ¿Alguna otra forma?
Estoy usando gambas 3.7.1 en Debian Testing.
Muchas gracias.
Comparar Coordenadas En Un GridView
Objetivo: Re: Comparar Coordenadas En Un GridView
Hola, Guizans
Supongo que lo que quieres comparar es el contenido de una determinada celda (que es un texto) con otra cosa. Pero para poder comparar algo, ambos objetos tienen que ser del mismo tipo, en este caso un string de texto.
Por lo que lo siguiente debería funcionar, ya que usamos la propiedad .Text de la celda determinada por sus índices de fila y columna:
Resumiendo, grdGridView[2,2] se refiere al objeto Cell y grdGridView[2,2].Text se refiere al contenido de texto de ese objeto Cell.
Saludos
Supongo que lo que quieres comparar es el contenido de una determinada celda (que es un texto) con otra cosa. Pero para poder comparar algo, ambos objetos tienen que ser del mismo tipo, en este caso un string de texto.
Por lo que lo siguiente debería funcionar, ya que usamos la propiedad .Text de la celda determinada por sus índices de fila y columna:
Resumiendo, grdGridView[2,2] se refiere al objeto Cell y grdGridView[2,2].Text se refiere al contenido de texto de ese objeto Cell.
Saludos
Objetivo: Re: Comparar Coordenadas En Un GridView
última edición por Guizans el Sabado, 15 Agosto 2015, 15:50; editado 1 vez
Hola jguardon.
No, en mi caso no quiero comparar el contenido, ya que todas las celdas están vacías. Simplemente quiero comparar las coordenadas. Si el usuario hace click en una determinada casilla quiero que el programa haga algo. Pero no me sirve cualquier casilla, tiene que ser la casilla que yo quiero, de ahí la necesidad de comparar las coordenadas de la casilla que ha pulsado el usuario con las coordenadas de las casillas que a mi me interesan.
Muchas gracias.
Edito:
He encontrado una forma que me vale, no se si es la mejor, pero me funciona.
Un saludo.
No, en mi caso no quiero comparar el contenido, ya que todas las celdas están vacías. Simplemente quiero comparar las coordenadas. Si el usuario hace click en una determinada casilla quiero que el programa haga algo. Pero no me sirve cualquier casilla, tiene que ser la casilla que yo quiero, de ahí la necesidad de comparar las coordenadas de la casilla que ha pulsado el usuario con las coordenadas de las casillas que a mi me interesan.
Muchas gracias.
Edito:
He encontrado una forma que me vale, no se si es la mejor, pero me funciona.
Un saludo.
última edición por Guizans el Sabado, 15 Agosto 2015, 15:50; editado 1 vez
Objetivo: Re: Comparar Coordenadas En Un GridView
última edición por vuott el Martes, 18 Agosto 2015, 20:24; editado 4 veces
Suponiendo que el secundo términe de comparación son las coordenadas grdGridView[2,2], yo propondía:
o mejor:
o mejor:
última edición por vuott el Martes, 18 Agosto 2015, 20:24; editado 4 veces
Objetivo: Re: Comparar Coordenadas En Un GridView
Hola vuott.
Tu solución también me gusta, pero creo que de momento me voy a quedar con la solución que encontré, me parece más elegante.
Muchas gracias.
Un saludo.
Tu solución también me gusta, pero creo que de momento me voy a quedar con la solución que encontré, me parece más elegante.
Muchas gracias.
Un saludo.
Objetivo: Re: Comparar Coordenadas En Un GridView
Puede ser, pero no he comprendido como tu obtienes en manera segura las coordenadas de la celda donde tu hace click con el mouse, porque la Clase Point solo dà coordenadas exprimidas en pixel.
Pregunta: las coordenadas del GridView que tu quieres comparar, se refieren a las celdas o a las distancias en pixel de Mouse.X y Mouse.Y ?
última edición por vuott el Sabado, 15 Agosto 2015, 23:03; editado 2 veces
Guizans escribió: [Ver mensaje]
Puede ser, pero no he comprendido como tu obtienes en manera segura las coordenadas de la celda donde tu hace click con el mouse, porque la Clase Point solo dà coordenadas exprimidas en pixel.
Pregunta: las coordenadas del GridView que tu quieres comparar, se refieren a las celdas o a las distancias en pixel de Mouse.X y Mouse.Y ?
última edición por vuott el Sabado, 15 Agosto 2015, 23:03; editado 2 veces
Objetivo: Re: Comparar Coordenadas En Un GridView
Hola vuott.
Perdón por tardar tanto en contestar, pero me ha sido imposible.
Volviendo al tema, lo que quiero capturar son las coordenadas de las celdas. Para obtener la coordenada de la celda en la cual el usuario hace click uso esto:
Entonces el la variable coor se almacena las coordenadas en las que el usuario hace click. Si quiero saber si ha hecho click por ejemplo en la casilla superior izquierda hago lo siguiente:
Lo dicho, no se si hay otra manera mejor y más fácil, pero esta me ha sacado del atolladero.
Gracias por vuestra ayuda.
Perdón por tardar tanto en contestar, pero me ha sido imposible.
Volviendo al tema, lo que quiero capturar son las coordenadas de las celdas. Para obtener la coordenada de la celda en la cual el usuario hace click uso esto:
Entonces el la variable coor se almacena las coordenadas en las que el usuario hace click. Si quiero saber si ha hecho click por ejemplo en la casilla superior izquierda hago lo siguiente:
Lo dicho, no se si hay otra manera mejor y más fácil, pero esta me ha sacado del atolladero.
Gracias por vuestra ayuda.
Objetivo: Re: Comparar Coordenadas En Un GridView
última edición por vuott el Martes, 18 Agosto 2015, 20:23; editado 1 vez
Perdón, pero siguo tenendo algunas dudas:
1) la Clase Point() quiere dos parametros que se refieren a las coordinadas de la distancia de un punto desde el lado superior y desde el lado izquierdo.
2) solo es casual que la Classe Point() te ofrezca la posibilidad de almacenar dos valores costantes. Es decir tu utizas en manera... no-propia la Clase Point().
3) Las coordinadas de las celdas de un GridView son indices de la rejilla, como si fuera una matriz.
4) Este tu estratagema, que - sì - dà sus efectos, te ha pero obligado a declarar dos variables y a crear dos objetos de tipo Point.
...creo que puedes obtener más con menos.
1) la Clase Point() quiere dos parametros que se refieren a las coordinadas de la distancia de un punto desde el lado superior y desde el lado izquierdo.
2) solo es casual que la Classe Point() te ofrezca la posibilidad de almacenar dos valores costantes. Es decir tu utizas en manera... no-propia la Clase Point().
3) Las coordinadas de las celdas de un GridView son indices de la rejilla, como si fuera una matriz.
4) Este tu estratagema, que - sì - dà sus efectos, te ha pero obligado a declarar dos variables y a crear dos objetos de tipo Point.
...creo que puedes obtener más con menos.
última edición por vuott el Martes, 18 Agosto 2015, 20:23; editado 1 vez
Página 1 de 1
No puede crear mensajesNo puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario
Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.
Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo
Página generada en:: 0.3808s (PHP: -76% SQL: 176%)
Consultas SQL: 49 - Debug off - GZIP Activado