|
Página 1 de 1
|
Comparar Coordenadas En Un GridView
Autor |
Mensaje |
Guizans
Aprendiz
Registrado: Febrero 2012
Mensajes: 99
Edad: 45
|
Comparar Coordenadas En Un GridView
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.
|
#1 Sabado, 15 Agosto 2015, 12:59 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
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:
if grdGridView[2,2].Text = "contenido de la celda" then print "Si"
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
=================== 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"
|
#2 Sabado, 15 Agosto 2015, 14:52 |
|
|
Guizans
Aprendiz
Registrado: Febrero 2012
Mensajes: 99
Edad: 45
|
Re: Comparar Coordenadas En Un GridView
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.
dim a as point
dim b as point
a = new point(coordena1, coordenada2)
b = new point(coordena3, coordeanda4)
if a = b then print "Son iguales"
Un saludo.
última edición por Guizans el Sabado, 15 Agosto 2015, 15:50; editado 1 vez
|
#3 Sabado, 15 Agosto 2015, 15:14 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Comparar Coordenadas En Un GridView
Suponiendo que el secundo términe de comparación son las coordenadas grdGridView[2,2], yo propondía:
o mejor:
última edición por vuott el Martes, 18 Agosto 2015, 20:24; editado 4 veces
|
#4 Sabado, 15 Agosto 2015, 15:32 |
|
|
Guizans
Aprendiz
Registrado: Febrero 2012
Mensajes: 99
Edad: 45
|
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.
|
#5 Sabado, 15 Agosto 2015, 16:13 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Comparar Coordenadas En Un GridView
....me parece más elegante.
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
|
#6 Sabado, 15 Agosto 2015, 18:03 |
|
|
Guizans
Aprendiz
Registrado: Febrero 2012
Mensajes: 99
Edad: 45
|
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:
public sub grdTablero_Click()
dim coor as point
coor = new point(grdTablero.Row, grdTablero.Column)
end
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:
public sub grdTablero_Click()
dim coor as point
dim caar as point
coor = new point(grdTablero.Row, grdTablero.Column)
caar = new point(0,0)
if coor = caar then print "Estas en la casilla superior izquierda"
end
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.
|
#7 Martes, 18 Agosto 2015, 18:59 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Comparar Coordenadas En Un GridView
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.
última edición por vuott el Martes, 18 Agosto 2015, 20:23; editado 1 vez
|
#8 Martes, 18 Agosto 2015, 20:22 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 1
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
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 Puede descargar archivos No puede publicar eventos en el calendario
|
|
|
|
|