Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Barra De Botones
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Barra De Botones 
 
como se hace para cambiar el valor de un boton "Togle" sin que se dispare el evento?



Public Sub resetear()

    btnPaneo.Value = true
        

End


Public Sub btnPaneo_Click()

   'no quiero llegar aqui!!!
    

End
 

 



 
tercoIDE - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Barra De Botones 
 
Public Sub btnPaneo_Click()

   Stop Event
    

End


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"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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.

Private hObservador As Observer

Public Sub _new()
  
End

Public Sub Form_Open()
  
  hObservador = New Observer(btnPaneo) As "Observador"
  resetear()
  
End

Public Sub resetear()
  
  btnPaneo.Value = True
  
End

Public Sub Observador_Click()
  
  Message("Yo soy el único!!")
  Stop Event
  
End

Public Sub btnPaneo_Click()
  
  Message("no quiero llegar aquí!!")
  
End
 


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 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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...


Public reseteando as boolean

Public Sub resetear()

reseteando = true

btnPaneo.Value = True

reseteando = false

End


Public Sub btnPaneo_Click()

if reseteando then return

Message("no estare aqui!!")

End

 



 
tercoIDE - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Barra De Botones 
 
Lo mismo que has hecho, pero algo más elegante por cuanto te ahorras una variable pública:

Public Sub resetear()

    btnPaneo.tag=true
    btnPaneo.Value = True

End


Public Sub btnPaneo_Click()

    if btnPaneo.tag then return
    Message("no estare aqui!!")

End
 

 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 



 
tercoIDE - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Barra De Botones 
 
shordi escribió: [Ver mensaje]

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.

Public Sub Operacion_Click()

  Select Case Last.tag
    Case 0
      operando1 = CFloat(Pantalla.Text)
      operador = "+"
      Pantalla.Text = ""
    Case 1
      operando1 = CFloat(Pantalla.Text)
      operador = "-"
      Pantalla.Text = ""
    Case 2
      operando1 = CFloat(Pantalla.Text)
      operador = "*"
      Pantalla.Text = ""
    Case 3
      operando1 = CFloat(Pantalla.Text)
      operador = "/"
      Pantalla.Text = ""
  End Select
End
 


Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Explicacion De Botones (Solucionado) Cubel General 5 Martes, 16 Febrero 2010, 08:48 Ver último mensaje
Cubel
No hay nuevos mensajes Asignar Teclas A Botones kotonfree Controles/Librerías/Componentes 8 Lunes, 13 Diciembre 2010, 23:04 Ver último mensaje
kotonfree
No hay nuevos mensajes Borrar Botones Creados Por Codigo? CanihoJR General 4 Jueves, 03 Noviembre 2011, 15:27 Ver último mensaje
CanihoJR
No hay nuevos mensajes Seleccion De Botones Erik G Controles/Librerías/Componentes 5 Miercoles, 14 Marzo 2012, 05:32 Ver último mensaje
Erik G
 

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
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron