Autor |
Mensaje |
tercoIDE
Analista Programador
Registrado: Noviembre 2013
Mensajes: 713
Edad: 54
|
Barra De Botones
como se hace para cambiar el valor de un boton "Togle" sin que se dispare el evento?
|
#1 Sabado, 06 Diciembre 2014, 12:37 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Barra De Botones
También puedes colocar Stop Event dentro de un condicional, si no siempre deseas el mismo comportamiento.
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, 06 Diciembre 2014, 13:12 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Barra De Botones
Jesús:
De esa forma se ejecuta el evento. Quiero decir que llega a el. Aunque se para.
TercoIDE:
¿ Cuál es la idea principal del ejemplo ?.
Esto es un ejemplo con un observador. No llegaría a ejecutarse el evento click del ToolPanel.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
última edición por Shell el Sabado, 06 Diciembre 2014, 13:27; editado 1 vez
|
#3 Sabado, 06 Diciembre 2014, 13:26 |
|
|
tercoIDE
Analista Programador
Registrado: Noviembre 2013
Mensajes: 713
Edad: 54
|
Re: Barra De Botones
la idea era esa, justamente, poder "toglear" el boton desde codigo, sin que se ejecute el evento
pero se me acaba de ocurrir una idea tan basica que no la considere...
|
#4 Lunes, 08 Diciembre 2014, 01:12 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Barra De Botones
Lo mismo que has hecho, pero algo más elegante por cuanto te ahorras una variable pública:
|
#5 Lunes, 08 Diciembre 2014, 07:26 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Barra De Botones
Veo que a veces aprovechamos la propiedad tag de los controles, dándole un uso distinto al
de un array de controles. A lo mejor esta propiedad en gambas no fue creada solamente para esto
exclusivamente.
Y ahora para el ahorro de una variable publica. Esto son trucos.
Son cosas que realmente no nos damos cuenta por la falta de uso.
En cambio en Vb6 la propiedad index del control parece más exclusiva del índice de los controles.
"Más sabe el diablo por viejo que por diablo".
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#6 Lunes, 08 Diciembre 2014, 09:52 |
|
|
tercoIDE
Analista Programador
Registrado: Noviembre 2013
Mensajes: 713
Edad: 54
|
Re: Barra De Botones
creo haber leido que Benoit puso Tag y otras similares para compatibilidad con VB mas que para darles algun uso especifico
|
#7 Lunes, 08 Diciembre 2014, 13:49 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Barra De Botones
La propiedad tag es mucho más antigua que el VB. Es un clásico. En otros lenguajes tiene otro nombre (por ejemplo en el viejo Clipper5 se llamaba "cargo") pero la idea es la misma, conseguir que el objeto porte información que él mismo no trata directamente, pero que el programador puede usar para lo que quiera. De ahí el que la propiedad sea un Variant, puede contener cualquier cosa.
Shell: Lo del array de controles usando tag no lo entiendo muy bien...
Saludos
|
#8 Lunes, 08 Diciembre 2014, 17:17 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Barra De Botones
Shell: Lo del array de controles usando tag no lo entiendo muy bien...
Cuando creas un array de controles en gambas, el nombre del grupo es el mismo, común a esos controles
y la propiedad tag es un valor numérico distinto en cada control de ese grupo. Si fuese un grupo de botones, al hacer click en uno de esos botones,
sabemos en cual se ha hecho click por medio de Last.tag
Imagina que quieres saber en una calculadora si has hecho click en el botón que es el operador suma,resta..cada uno con un tag distinto.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#9 Lunes, 08 Diciembre 2014, 18:01 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Barra De Botones
Vale, no te había entendido. Yo eso no lo hago con el tag, salvo que el tag aporte algo más, lo hago con la propiedad Text o Name, según hayan sido creados los controles.
Public Sub Operacion_Click()
Select Case Last.text
Case "+" ' o Case Last. name ... Case "buttonAdd" etc. etc.
operando1 = CFloat(Pantalla.Text)
operador = "+"
Pantalla.Text = ""
Case "-"
operando1 = CFloat(Pantalla.Text)
operador = "-"
Pantalla.Text = ""
Case "*"
operando1 = CFloat(Pantalla.Text)
operador = "*"
Pantalla.Text = ""
Case "/"
operando1 = CFloat(Pantalla.Text)
operador = "/"
Pantalla.Text = ""
End Select
End
Es por coherencia. Tag, por definición "porta" datos que no tienen que ver con el objeto o con su funcionamiento, que para eso el objeto ya tiene sus propiedades. La identificación de un control viene dada por el nombre o por alguna característica propia que se le asigne en el momento de la creación, como el texto. Por tanto, han de ser usadas éstas, ahorrando el tag para otros menesteres y ahorrando código, puesto que el nombre o el texto han de ser establecidos de todas formas.
Saludos.
última edición por shordi el Lunes, 08 Diciembre 2014, 19:17; editado 1 vez
|
#10 Lunes, 08 Diciembre 2014, 19:15 |
|
|
|