Cambios en Orden de Ejecucion Autoexec


([N4] info) #1

Hola
He visto lo siguiente:
Tengo una aplicacion y en el dock del autoexec, un formulario que carga un casillero a traves de un control objeto de un atabla en memoria.
Esta tabla la creo en el proceso OnINIT del Autoexec.
Antes con V7.6 lo hacia bien, pero he tenido que modificarlo
Parece que anteriomente la secuencia erá primero ejecuto ONINIT y despues carga los DOCk
Ahora a mi parecer Primero carga los DOCKS y luego ejecuta el ONINIT
No se si alguien ha visto algo de esto y puede comentarlo
Pero por si acaso os aviso
un saludo
Miguel


([N2] overall) #2

Hola Miguel,

Cierto, antes de cargar el evento ONINIT del marco AUTOEXEC, primero carga los formularios y luego ejecuta el proceso. Este comportamiento no creo que sea el adecuado. A simple vista podemos ver que primero carga el estilo por defecto de la app y luego le aplica los estilos CSS, por decir algo.

Saludos
Overall
Luis Palomo
overall@massoicb.com
www.overall-bcn.com


([N1] Eva) #3

Hola,
Si a mí me está pasando, y creo que tienes razón. Lo que no sé es como has podido arreglarlo, yo lo estoy intentando y no lo consigo.
Te cuento lo que tengo yo, en el autoexec tengo un dock a la izquierda que es el menú de mi aplicación (es un formulario formado por una caja de formularios en la que cada formulario es una opcion de menú). En el evento oninit abría un formulario para que el usuario introdujera el usuario y contraseña (antes no se veía el dock, ahora sí), y en función del usuario que introdujera se activaban o no los fomularios (en la condición de activo de los formularios dependiendo del tipo se activaba o no).
Estoy haciendo pruebas de ocultarlos al principio y despues activarlos, pero la verdad que no consigo que hagan nada.

Un saludo y muchas gracias


([N4] info) #4

Ya me parecia, creo que llevas razón el orden debe ser el contrario, no se como afectará en otras partes de la aplicación
Estas cosas debieran documentarlas
un saludo
Miguel


([N4] info) #5

Hola Eva
Yo lo que haria seria como bien dices ocultarlos al principio
y como ultima linea del proceso oniniT interfaz activar y recalcular control(dock->formulario), que ya tendra las variables que tu quieres
de todas formas esta claro que esta al reves, segun mi opinion, igual alguien de velneo nos aclara el porque
un saludo
Miguel


([N1] Eva) #6

Hola Miguel,

Muchas gracias. Eso funciona para el formulario del dock, pero el problema que tengo es que el formulario es una caja de formularios, y dentro de cada formulario es el que se activa o no en función de las variables. El recalcular control no actualiza esos formularios, ni aunque haga recalcular de cada uno de los objetos que forma la caja de formularios.

Voy a seguir haciendo pruebas a ver si consigo una solución, si la encuentro os vuelvo a escribir para compartirla con vosotros.

Un saludo

Eva




([N4] Jorge) #7

Es un problema del comportamiento de los eventos en Qt arrastrado en Velneo. Seguro que se esta trabajando duro para dar una solucion adecuada.

mientras tanto... tendreis que apañarlo como podais ya que la solucion seguramente este aun un poco lejos.

Atentamente
Jorge Hontoria
http://tipesoft.com


([N1] Eva) #8

Hola Jorge,

No entiendo lo que dices, y no se a que error te refieres cuando dices que está arrastrado de los eventos de QT, ¿es al cambio de orden?, en la versión 7.6 me funcionaba correctamente ya que se ejecutaba antes el método Oninit que pintar los objetos del marco.

Un saludo y muchas gracias


([N4] info) #9

Lo que dice Eva es correcto
Miguel


([N4] Atanasio) #10

Hola a todos, lo primero saludar a la comunidad de Velneo ya que es mi primera intervención en el foro, soy “Vnovato”.

Me disponía a instalar mi primera aplicación decente en Velneo cuando he leído este post en el foro, resulta que esta incidencia me ha tocado de lleno.
Después de investigar un poco lo he solucionado de la siguiente forma :
- Creo un formulario vacío, sólo tiene un evento que se carga al inicializar dicho formulario, este evento llama a un formulario que pide el login del usuario, luego muestra las opciones a las que tiene acceso el usuario, carga los parámetros de la aplicación, hojas de estilo, etc..
- Este formulario lo incluyo en el primer Dock del “Autoexec” con la “Condición de visible inicial” = 0
De esta forma es lo primero que se ejecuta.

No es una solución muy ortodoxa , pero me funciona hasta que se solucione la incidencia.

Un cordial saludo,

Atanasio.


([N2] bannu) #11

Si, pero el problema será en todos los formularios, y no estoy muy seguro, pero no creo que sea culpa de las QT.


([N4] info) #12

Hola Sonovision.
No creo que esto se de en los formularios sino no trendria sentido el evento inicializado,pero no lo he probado y vaya Vd a saber.
un saludo
Miguel


([N4] Jorge) #13

Me intento explicar... En versiones precedentes cuando en un formulario se cargaban los controles contenidos el evento ON_INIT del mismo se lanzaba posteriormente a la carga de los controles. Esto se produce por una cuestión de Qt algo compleja de explicar... pero en principio el problema reside en Qt.

Yo creí que el problema de los marcos estaba relacionado con este otro (se parecen bastante) y que en esta versión se hicieron algunos cambios (ya que hay nueva versión de Qt 4.7.2 creo recordar)... Si no es así disculparme.

Atentamente,
Jorge Hontoria
http://tipesoft.com


([N4] info) #14

Hola Jorge
¿Disculparte?
Todo lo contrario, personalmente creo que tu aportacion en el foro es muy valiosa.
un saludo
Miguel


([N4] jarboleya) #15

Buenos días.

Acabo de publicar un post destacado en el foro.
http://velneo.es/foros/topic/aclaracion-sobre-la-inicializacion-en-formularios-on_init

Esperamos que ayude a comprender los problemas que se producían en la situación anterior y el motivo del cambio.

Gracias.


([N4] info) #16

Gracias por tu aclaración Jesús

Pero permiteme que te diga, que un cambio de estas caracteristicas que altera la programacion realizada debeis avisarla, DE MANERA DESTACADA, ya que luego no te funciona algo y no se sabe porque.

Un saludo
Miguel


([N4] info) #17

Otra Cosa, entiendo que esto solo afecta al autoexec, no a formularios normales.

Miguel


([N4] eic) #18

Hola.

No, Miguel, afecta tanto a formularios como a marcos. El post de Jesús Arboleya se refiere a formularios; y hay otro de Alejandro que se refiere a marcos.

Saludos,

Fran Varona


([N4] jarboleya) #19

Buenos días,

Gracias Miguel y Fran. Ya he modificado el asunto del post del foro para que no induzca a error. El cambio se ha realizado en el Marco.

En los formularios ya se dispara después de estar construidos todos los objetos, de lo contrario no se podrían ejecutar instrucciones de interfaz contra los mismos. Por ese motivo es por el que fue necesario que el Marco disparase la señal correctamente.

También es importante tener en cuenta que cuando un formulario contiene subformularios, los subformularios se construyen antes que el formulario (padre) esto permite que cuando se dispara el evento inicializado del formulario (padre) ya tengas construidos y disponibles todos los objetos de ese formulario y de sus subformularios.

Un saludo.


([N1] Eva) #20

Hola,

Muchas gracias a todos por la ayuda y por la información.
Atanasio, lo he solucionado de la misma forma que tú, al final despues de darle muchas vueltas y pruebas, es la única manera que he conseguido de que funcionará de la misma forma que antes. Gracias por compartir tu solución con todos.

Un saludo

Eva