Posicion Formulario V7.18


([N4] rpaton) #1

Hola:
Tengo un formulario que en v7.17 al dar orden de Maximizar con las instruciones siguientes maximizaba presentando en la posición izquierda superior de la pantalla, pero con v7.18 el formulario lo presenta desde el CENTRO de la pantalla. Ver imagen.

theRoot.dataView().minimumWidth = theMainWindow.width();
theRoot.dataView().minimumHeight= theMainWindow.height();
theRoot.dataView().showMaximized();

 Si después de estas instrucciones pongo: alert("hola");  y pulso Aceptar si que lo presenta bien en la posición 0,0

 Si no ejecuto estas opciones y lo presento tal cual también lo hace a partir del CENTRO de la pantalla.

 ¿Alquien más ha observado este comportamiento en V7.18?
 
 Saludos.

 Ricardo Patón

([N1] wikan) #2

Ese comportamiento es el normal. La gente se quejo que los formularios de login que hacían para sus aplicaciones los mostrar en la esquina superior. Ahora funciona como debería.

Siempre puedes reubicarlos con las propiedades x e y
theRoot.dataView().x = 0;
theRoot.dataView().y= 0;


([N3] pacosatu) #3

Hola Ricardo.

Yo utilizo ese código (un tanto extraño y poco evidente por cierto) y el formulario siempre se centra respecto a la Ventana principal de vClient. Este es el funcionamiento esperado.

Si ejecutas theRoot.dataView().showMaximized() el formulario se hace igual de tamaño a la Ventana principal de vClient y con las mismas coordenadas x,y. Si luego el usuario hace click en el icono de maximizar ventana del formulario, éste se hace igual al tamaño de la pantalla.

Por lo tanto, la función showMaximized() tiene un comportamiento extraño e incluso pienso que no funciona correctamente y necesitamos la chapucilla de siempre (limitar los valores mínimos de ancho y alto) para simular un maximizado.

En este tema, ya sabes, prueba y error.

Saludos
Paco Satué


([N4] rpaton) #4

Hola Wikan y Paco:

 En el ON_INIT del formulario principal creo una tabla en memoria con registros en función de algunos campos del formulario y en el Separador de formulario que tiene esta ventana principal tengo una rejilla que se refresca en la señal ON_SHOW.

 En V7.17 se ejecuta primero la señal ON_INIT del principal y luego la ON_SHOW de la pestaña, sin embargo, en la V7.18 primero se ejecuta ON_SHOW de la pestaña y luego ON_INIT del principal. 

 Si en la V7.18 en el ON_SHOW de la pestaña no refresco la rejilla sale maximizado y en su sitio, pero como no refresco la rejilla esta aparece sin datos.

 Si en V7.18 en lugar de utilizar ON_SHOW para la pestaña utilizo ON_INIT sale maximizado pero como se lanza antes que el ON_INIT del formulario principal no me refresca datos en la rejilla.

 Saludos.

 Ricardo Patón

([N4] rpaton) #5

Hola:

 Como la única solución es utilizar ON_INIT en la pestaña, he cambiado la señal ON_SHOW por ON_INIT (Post-Inicializado) y he construido la tabla en memoria antes de editar la ficha.

 Lo que no me explico es que en V7.17.1 funcione bien y en V7.18 cambien el orden. Al menos no he visto nada en el bugman por cierto que no he podido entrar con las instrucciones que figuran en el centro de soporte) ni en la lista de las 90 novedades.

 Tendré que revisar por si tengo más ON_SHOW para cambiarlos por ON_INIT

 Saludos.

 Ricardo Patón