Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Devolver El Foco A Un Textbox Desde Otro Formulario?
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Devolver El Foco A Un Textbox Desde Otro Formulario? 
 
Sigo liado con mi maldito teclado táctil...

Tengo dos formularios (FORM1 y Teclado), cuando se pincha en una caja de texto de FORM1 (evento MouseDown) debe mostrarse el form Teclado ya que el usuario quiere editar ese texto, este es el evento concreto (vGlobal es un módulo donde defino variables globales):

Public Sub TX1_MouseDown()
  If Teclado.Visible = False Then
    vGlobal.CajaTexto = TX1
    vGlobal.FormTXT = Me
    Teclado.Show
  Endif
End
 


Hasta aquí todo ok. Cuando Form2 se abre calculará la posición de TX1, el tamaño de Form1, hará una serie de procesos para mostrarlo a la altura que lo tiene que mostrar (como funcionaría por ejemplo en un teléfono móvil) por ejemplo esto es parte de lo que hace el formulario Teclado para que ambos ocupen 480 pixels que es lo que tiene el panel táctil:

Public Sub Form_Open()
  Me.y = vGlobal.FormTXT.screenY + (480 - Me.h)
  Me.x = vGlobal.FormTXT.ScreenX
  vGlobal.FormTXT.h = 480 - Me.h
End Sub
 


y el foco debería volver a la caja de texto a la espera de que el usuario haga click en cualquier zona del formulario Teclado, lo que generará que en la caja de texto se inserte la tecla que toque. Y todo eso funciona bien, pero no se muestra el cursor. Para devolver el foco uso:

  vGlobal.CajaTexto.setfocus
 


Pero no me hace ni caso, el efecto que persigo es que el cursor aparezca en la caja de texto en la que el usuario pulsó pero como no consigo que el foco vuelva, no sale, entendiendo por foco lo mismo que sucedería en VB6, que no se si en gambas es un concepto diferente.

¿Alguna idea? Es más un tema estético que otra cosa porque el programa funciona, pero con el cursor quedaría mejor.
 



 
última edición por Tasagore el Miercoles, 10 Agosto 2016, 16:51; editado 4 veces 
Tasagore - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Devolver El Foco A Un Textbox Desde Otro Formulario? 
 
No se si he entendido bien el problema pero como idea sencilla añade la caja de texto al propio formulario teclado y le estableces el foco después de cada pulsación de botón, con eso te aparecería el cursor. Luego, al pulsar el botón aceptar o cerrar, le pasas el texto al control original form 1 y el cursor aparecerá al final del texto...
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Devolver El Foco A Un Textbox Desde Otro Formulario? 
 
shordi escribió: [Ver mensaje]
No se si he entendido bien el problema pero como idea sencilla añade la caja de texto al propio formulario teclado y le estableces el foco después de cada pulsación de botón, con eso te aparecería el cursor. Luego, al pulsar el botón aceptar o cerrar, le pasas el texto al control original form 1 y el cursor aparecerá al final del texto...


Inicialmente lo hice así pero me resultaba un poco chapucero desde el punto de vista de la experiencia de usuario y lo descarté.

Piensa en tu móvil, cuando pulsas en una caja de texto el formulario base se desplaza para que el texto que has pulsado lo veas arriba y abajo aparece el teclado, eso en nuestro caso son dos formularios, el texto (y todo lo que le rodea) debe estar aparte del formulario del teclado. Como cuento con una  superficie de 800x480 pixels debo calcular el desplazamiento y tamaño del formulario que contiene la caja de texto para que cuando pinto el formulario del teclado al final parezcan uno solo dentro de ese espacio, no puedo "mezclarlos".

Como te digo todo funciona perfecto pero visualmente quedaría mucho mejor ver el cursor parpadeando en la caja en la que estás escribiendo, con mi programa esto no sucede porque el cursor desaparece, y lo hace porque el textbox pierde el foco cuando haces click sobre la tecla que sea (en realidad es un control Picturebox y controlo las teclas por coordenadas), el tema es que no entiendo por qué aunque le devuelvo el foco a la caja de texto original del otro formulario, realmente no lo hace.

Si quieres te pongo unas fotos que igual te clarifican más el asunto.
 



 
Tasagore - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Devolver El Foco A Un Textbox Desde Otro Formulario? 
 
Devuelves el foco al textbox, pero para que eso sea efectivo, el formulario del textbox debe tener también el foco...
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Devolver El Foco A Un Textbox Desde Otro Formulario? 
 
Cuándo se da el focus al TextBox, el su Form de pertenencia es activado al mismo tiempo ? (Como ha dicho tambien shordi)
 



 
última edición por vuott el Jueves, 11 Agosto 2016, 19:32; editado 5 veces 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Devolver El Foco A Un Textbox Desde Otro Formulario? 
 
vuott escribió: [Ver mensaje]
Tasagore escribió: [Ver mensaje]
... el foco debería volver a la caja de texto ....... pero no se muestra el cursor. Para devolver el foco uso:

  vGlobal.CajaTexto.setfocus
 



Cuándo se da el focus al TextBox, el su Form de pertenencia es activado al mismo tiempo ? (Como ha dicho tambien shordi)


La verdad es que he probado de todo, en concreto con:

vGlobal.FormTXT.setfocus  
vGlobal.CajaTexto.setfocus
 


hace lo mismo, es decir, nada, el foco no vuelve a donde le indico.
 



 
Tasagore - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Devolver El Foco A Un Textbox Desde Otro Formulario? 
 
Os adjunto un ejemplo sencillo del problema (es un link de Google Drive):
Ejemplo de foco
 



 
Tasagore - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Devolver El Foco A Un Textbox Desde Otro Formulario? 
 
Tasagore escribió: [Ver mensaje]
Cuándo se da el focus al TextBox, el su Form de pertenencia es activado al mismo tiempo ? (Como ha dicho tambien shordi)


Para activar el Form de pertenencia del TextBox, tienes que utilizar el su (del Form) metodo .Activate( ).

Si por ejemplo tenemos 2 Form (Fmain y Form1), y tu quieres dar el focus (es decir: activar) a el Form secundario (que se llama: Form1), asì llevandolo encima a FMain:

Form1.Activate()

 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Devolver El Foco A Un Textbox Desde Otro Formulario? 
 
Bueno... el tema de usar un módulo en estas circunstancias... mmmm los módulos no son para eso.
En todo caso tu teclado tiene vocación de control... y no sería nada difícil de hacer.

El tema de variar el foco de un formulario a otro... sólo es posible si el formulario B está contenido en el A.

Te adjunto un ejemplito que acabo de hacer que te puede ilustrar en cómo lo enfocaría yo.
 captura_de_pantalla_de_2016_08_11_20_56_05
Falta, por supuesto todo el manejo del resto de teclas (minúsculas, mayúsculas, símbolos, etc.) y el posicionamiento del teclado en la pantalla según la posición del campo que quieras rellenar (si está muy abajo hacer un scroll o cosas así).

Saludos.

teclas-0.0.1.tar.gz
Descripción:  
Descargar
Nombre del archivo: teclas-0.0.1.tar.gz
Tamaño: 12.24 KB
Descargado: 49 veces
teclas-0.0.1.tar.gz
Descripción:  
Descargar
Nombre del archivo: teclas-0.0.1.tar.gz
Tamaño: 12.24 KB
Descargado: 49 veces
teclas-0.0.1.tar.gz
Descripción:  
Descargar
Nombre del archivo: teclas-0.0.1.tar.gz
Tamaño: 12.24 KB
Descargado: 49 veces

 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Devolver El Foco A Un Textbox Desde Otro Formulario? 
 
shordi escribió: [Ver mensaje]
Bueno... el tema de usar un módulo en estas circunstancias... mmmm los módulos no son para eso.
En todo caso tu teclado tiene vocación de control... y no sería nada difícil de hacer.

El tema de variar el foco de un formulario a otro... sólo es posible si el formulario B está contenido en el A.

Te adjunto un ejemplito que acabo de hacer que te puede ilustrar en cómo lo enfocaría yo.
 captura_de_pantalla_de_2016_08_11_20_56_05
Falta, por supuesto todo el manejo del resto de teclas (minúsculas, mayúsculas, símbolos, etc.) y el posicionamiento del teclado en la pantalla según la posición del campo que quieras rellenar (si está muy abajo hacer un scroll o cosas así).

Saludos.

Probablemente no sea correcto el uso pero no he tenido tiempo de ver las particularidades de gambas y al final me centro de momento en que funcione.  La idea de formulario que contiene a otro la asociaba a los MDI de Windows pero no había visto cómo hacerlo en gambas, echaré un vistazo despacio a tu ejemplo porque tomando como idea esa pertenencia parece que funcionará. El tema del control de símbolos y demás lo tengo todo hecho, aparentemente sería variar muy poco mi código.

Mañana os cuento cómo queda, gracias.
 



 
Tasagore - 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 Usar Textbox En Otro Formulario techm3 General 5 Viernes, 05 Febrero 2010, 22:32 Ver último mensaje
techm3
No hay nuevos mensajes Devolver El Valor De Un Campo De Un Result... fua General 3 Viernes, 25 Junio 2010, 07:57 Ver último mensaje
bies88
No hay nuevos mensajes Formulario Para Devolver Variables bies88 General 15 Viernes, 13 Junio 2014, 08:43 Ver último mensaje
jsbsan
No hay nuevos mensajes Devolver El Foco Al Objeto Anterior Al Hac... CanihoJR Controles/Librerías/Componentes 4 Domingo, 01 Febrero 2015, 17:09 Ver último mensaje
vuott
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

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