Efecto de Enter en otra ventana

Buen dia Todos

agradecerles por la respuestas y por la disposicin de su tiempo, para ayudarme a resolver lo siguiente:

Para desplazarme de un control a otro control, ejecuto en el evento KeyUp las instrucciones Self.focusNext o Self.nombrecontrol.setfocus

Mi problema es cuando desde de un textfield que esta una ventana principal, invoco a otra ventana busqueda y de esta ultima ventana, se pulsa enter en el botn salir (se utiliza el teclado), para regresar a la ventana principal. El Enter que se puls en la ventana de bsqueda, hace efecto tanto para el textfield donde se invoco, como para el siguiente textfield, quedando el enfoque en tercer texfield, sin embargo debi quedar el enfoque en el segundo textfield, porque as lo disecciono con un setfocus

Como podra hacer para que el enter pulsado (teclado) en la ventana busqueda al momento de cerrarla, NO haga efecto en la ventana principal?
La ventana bsqueda la cierro con Self.close

Si pulso clic(mouse) en el botn salir de la ventana bsqueda, el focus se ubica correctamente en el segundo textfield, porque as lo direcciono con un setfocus)

Muchas gracias por algn comentario que me pueda hacer llegar al respecto.

Cordialmente,

Raul Juarez Pulache

Como no hay ejemplo, djame sealar que en muchos Event Handlers (e.g. RectControl.KeyDown), el comportamiento posterior depende si das [quote]return true //are we done with this event? Yes. [/quote] al final porque el evento se puede propagar a otros objetos. Por defecto, es ‘false’ y se entiende que el evento sigue en vigencia para otros responderle. El problema parece ser que KeyUp NO devuelve este boolean y bien podra poner dos handlers en conflicto (cada uno respondiendo a su manera, y prevalece el ltimo)

Hola Raul,

Por lo que me parece entender de su mensaje… creo que en el momento de invocar la ventana de búsqueda se dispara el KeyUp del TextField y, por tanto, se selecciona el tercer TextField; por eso aparece en dicho tercer textfield una vez que se cierra la ventana de Búsquedas…
¿Quizá pueda solucionarlo selecionado el foco en el control correcto como parte del código encargado de cerrar la ventana de búsquedas?
Es decir, si el TextField que debería retener el foco se llamase “MiCampoTexto”, podría utilizar…

MiVentana.MiCampoTexto.setFocus

Agradeciendo a Javier y a Vaughn por su respuestas que me han hecho llegar.
Si es exactamente es lo que comentas Javier al invocar la ventana de búsqueda se dispara el KeyUp del TextField y, por tanto, se selecciona el tercer TextField; por eso aparece en dicho tercer textfield una vez que se cierra la ventana de Búsqueda.
Inicialmente lo había puesto como lo ha sugerido Javier, en seleccionar el foco en el control correcto en la parte del código encargado de cerrar la ventana de búsqueda, pero la ventana de búsqueda la voy a utilizar también en otras ventanas y lo que me he propuesto es que la ventana búsqueda se lo mas independiente posible de las ventanas que la van a invocar, para no estar utilizando select y determinar de que ventana se invoco y concer tambien el nombre del control a donde debo dirigir el focus desde el botón salir de la ventana búsqueda.
Bueno seguimos intentando y ojala lo pueda conseguir.

Cordialmente,

RAUL

En ese caso… puedes utilizar el siguiente enfoque:

— Define una interfaz de clase, por ejemplo"MiInterazDeClase" con un método, por ejemplo “finalizaOperacion”
— En la ventana principal, implementa la interfaz de clase definida. Se añadirá el método. Define como código el encargado de situar el cursor en el control que deseas.
— En la ventana Búsquedas, define una propiedad, por ejemplo “miPropiedad”, cuyo tipo sea “MiInterfazDeClase”.
— En el método de cierre de la ventana, llama al método miPropiedad.finalizaOperacion

En el método de llamada de la ventana principal, antes de mostrar la ventana de búsquedas (y también en cualquier otra parte donde lo vayas a implementar):
— asígna el propio objeto de ventana a la propiedad definida para la ventana de búsqueda
— Abre la ventana de búsqueda

De esta forma, todos los objetos que vayan a hacer uso de la ventana de búsquedas podrán implementar funcionalidad específicia a cada caso dentro del método "finalizaOperacion"… o como lo quieras llamar.

Saludos,

Javier Rodríguez
Evangelista Xojo en Español, Desarrollador, Consultor y Formador Xojo
Autor del libro “Programación Multiplataforma Xojo
Autor del plug-in GuancheMOS para Xojo
Snippery para OS X: editor y gestor de fragmentos… ¡y más!

Muchas Gracias Vaughn

Probando detenidamente el cdigo tal como lo habas manifestado en el evento KeyUp al poner al final un return true, siempre se le indica que nadie mas debe consumir el evento.
Por defecto es false y le permita propagarse a otros objetos y eso es lo que no haba tomado en cuenta (desconoca).

Cordialmente,

Raul Juarez Pulache