Shell 01-09-2022, 13:12
Buenas!.

Después de dar muchas vueltas e intentando crear un código que lo hiciera, resulta que Gambas tiene el componente gb.data
que incluye la clase List que es una lista circular doblemente enlazada.

La idea del ejemplo es que tengo tres cajas de texto y al pulsar la tecla Enter o la Intro, el foco pasa de la primera a la segunda,
de la segunda a la tercera y cuando llega a la última y volvemos a pulsar Enter, vuelve a comenzar por la primera.

En este caso necesita que se pulse Enter. No me vale la tecla de tabulación.

[Imagen: ZAiisAz.png]

Código:
Private lista As List

Public Sub Form_Open()
 
  Me.Title = "Enfoque Circular"
  lista = New List
 
  'El primer elemento de la lista es el último insertado (la cabeza)
  'Una pila de TextBoxes en este caso. El tipo de dato que admite es Variant
 
  lista.Append(TextBox1)
  lista.Append(TextBox2)
  lista.Append(TextBox3)
 
End

Public Sub CajasDeTexto_KeyPress()
 
  If Key.code = Key.Return Or Key.code = Key.Enter Then     
    'Probar a cambiar del método MovePrev a MoveNext y ver el efecto
    
    'Se mueve al valor anterior. Si el actual era el primer valor, se convertirá en el último.
    
    lista.MovePrev
    
    'Se mueve del actual elemento al siguiente y si el actual es el último, se convertirá en el primero (es ciclico)
    'lista.MoveNext
    
    'Value es la caja de texto en si
    lista.Current.Value.SetFocus  
  Endif  
 
End

Saludos
Archivos adjuntos
.gz
CajasDeTextoFocoCircular-0.0.1.tar.gz (Tamaño: 12.5 KB Descargas: 3)
Shell 31-08-2022, 12:36
Buenas!.

En este caso existe un evento que cumple una tarea y se llama al evento KeyPress del formulario.
Normalmente usamos sentencias de comparación o varias para saber si se ha pulsado una tecla.
A ver que os parece la forma de evitarla.

Código:
Public Sub Form_KeyPress()
 
  Dim teclas As Integer[] = [Key.Enter, Key.Return]

  'If Key.Code = Key.Enter Or Key.Code = Key.Return Then Button1_Click
 
  If teclas.Exist(Key.Code) Then Button1_Click

End

Como son constantes no puedo usa sus valores al comienzo del código y declarar teclas como pública.

Saludos
FranChesstein 31-08-2022, 09:45
Buenas un saludo a la comunidad gambas

Este es mi primer post en este foro, así que me voy a presentar brevemente, soy aficionado a la programación en general, y al basic en particular Big Grin.

No habia programado nunca en gambas, tampoco en Visual Basic, soy de la vieja escuela del C, y estoy haciendo un pequeño programa (y primero) en gambas3, basicamente para aprender a conocer este lenguaje, y estoy teniendo dificultades en gestionar el control "tapstrip", concretamente me he quedado atascado (no encuentro información en internet) en pasar de una pestaña a otra desde código sin intervención del usuario. Me explico, en una pestaña, por ejemplo, realizo una serie de operaciones, y que una vez terminadas le doy a un control tipo "button" para me salte a otro control tipo "textarea" donde mostrar información y que está en otra pestaña, sin que el usuario tenga que picar manualmente en las pestañas del control.

he probado con textarea.show(), textarea.setfocus(), etc, tambien he intentado ver si el control  tabstrit tiene algún tipo de indice que te pueda redirigir a otras pestañas, pero nada de nada. Solo veo que existe la propiedad "current", y otra para fijar el número de pestañas, pero no existe ningún método que te permita redirigirte a otra pestaña.

Espero haberme explicado, y gracias de antemano
Páginas (564):    1 276 277 278 279 280 564   
Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.
Recordarme?
Miembros: 293
Último miembro: DarkWolf
Temas del foro: 1,742
Mensajes del foro: 9,029
Últimos temas
Ordenar en un TableView
Foro: General
Último mensaje por: Shordi, Ayer, 18:41
Respuestas: 3 - Vistas: 78
Odio a gb.Report
Foro: General
Último mensaje por: guizans, 02-11-2025, 13:36
Respuestas: 9 - Vistas: 1,530
Reportes de Gambas
Foro: Aplicaciones/Fragmentos de Código
Último mensaje por: Alberto59, 27-10-2025, 16:34
Respuestas: 2 - Vistas: 1,323
Ordenando las carpetas
Foro: Programación en otros lenguajes
Último mensaje por: tercoide, 22-10-2025, 15:57
Respuestas: 0 - Vistas: 103
Powered By MyBB, © 2002-2025 MyBB Group.
Made with by Curves UI.