[RESUELTO] Colocar el cursor en un lugar específico de un te

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...

[RESUELTO] Colocar el cursor en un lugar específico de un te

Notapor keko » Mié Jul 26, 2017 7:36 am

Hola.Estoy empezando con las macros en formularios de Base y me surge una duda.

En uno de los campos de mi formulario hay una serie de valores que se repiten mucho, así que he puesto un cuadro combinado para seleccionar esos valores. Pero también hay valores únicos que no están entre los que ofrece el cuadro, y en ese caso hay que escribirlos.

El 90% de los valores que van en ese campo empiezan con los mismos caracteres (es un campo de referencias, y la mayoría empiezan por "C-AXB0" y luego siguen números, por ejemplo "C-AXB004381"), entonces lo que he hecho es una macro que cuando el cuadro combinado recibe el foco escribe automáticamente C-AXB0, de forma que el usuario sólo tenga que completarlo con los números que faltan. En caso de que sea una referencia de las pocas que no empiezan así, se sobreescribe y ya está.

El problema es que cuando recibe el foco, escribe C-AXB0 pero el cursor se queda al principio del campo (antes de la C) y me preguntaba si es posible desde la propia macro dejar el cursor ya colocado después del 0 para escribir sin más lo que falta.

No es un problema grave (se arregla pulsando la tecla Fin del teclado antes de escribir la parte que falta), pero me queda la duda de si es posible hacerlo.

Muchas gracias.
Última edición por mauricio el Jue Jul 27, 2017 4:17 pm, editado 2 veces en total
Razón: Marcar icono de resuelto
Libreoffice 4.2.6.3 / Windows 10
keko
 
Mensajes: 3
Registrado: Mié Mar 15, 2017 9:19 am

Re: Colocar el cursor en un lugar específico de un texto

Notapor RMG » Mié Jul 26, 2017 12:15 pm

Hola,

Creo que hay algún que otro ejemplo en el foro sobre esto. Con una búsqueda lo encontrarás.

Saludos
OpenOffice 4.1.6 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
RMG
 
Mensajes: 3540
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Colocar el cursor en un lugar específico de un texto

Notapor keko » Jue Jul 27, 2017 8:05 am

Buenos días.

Lo intenté antes de hacer la consulta, pero todas las referencias que encuentro en el foro a posiciones de cursor se refieren a celdas, rangos, etc de excel o bien a poner el foco en uno u otro campo. No he encontrado ningún hilo que se refiera a lo que yo busco, que es mover el cursor al final del texto dentro del mismo campo en el que ya está.

Pero bueno, volveré a mirar por si se me ha escapado algo.

Un saludo y gracias.
Libreoffice 4.2.6.3 / Windows 10
keko
 
Mensajes: 3
Registrado: Mié Mar 15, 2017 9:19 am

Re: Colocar el cursor en un lugar específico de un texto

Notapor RMG » Jue Jul 27, 2017 11:13 am

Hola,

Mira si este ejemplo te sirve.

Código: Seleccionar todo   Expandir vistaContraer vista
Sub RecibeFoco( Evento )
Dim oSel As Object
   oSel = Evento.Source.Selection
   oSel.Min = 0
   oSel.Max = Len(Evento.Source.Text)
   Evento.Source.Selection = oSel
End Sub


Saludos
OpenOffice 4.1.6 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
RMG
 
Mensajes: 3540
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

[Resuelto] Colocar el cursor en un lugar específico de un te

Notapor keko » Jue Jul 27, 2017 11:44 am

Solucionado.

Con el código que has puesto pone el cursor al final pero deja el texto seleccionado, con lo que al escribir algo nuevo elimina lo que ya estaba. Pero lo he solucionado cambiando el límite inferior de la selección de 0 a Len(Evento.Source.Text), con lo que el cursor queda al final del texto sin tener nada seleccionado :D

Código: Seleccionar todo   Expandir vistaContraer vista
Sub RecibeFoco( Evento )
Dim oSel As Object
   oSel = Evento.Source.Selection
   oSel.Min = Len(Evento.Source.Text)
   oSel.Max = Len(Evento.Source.Text)
   Evento.Source.Selection = oSel
End Sub


Muchas gracias!
Libreoffice 4.2.6.3 / Windows 10
keko
 
Mensajes: 3
Registrado: Mié Mar 15, 2017 9:19 am


Volver a Macros y API UNO

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados