Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   CreateForm demasiado lento (https://www.clubdelphi.com/foros/showthread.php?t=53897)

kverna 04-03-2008 15:58:43

CreateForm demasiado lento
 
Gente, creo manualmente un formulario con las siguientes sentencias


Application.CreateForm(Tinformes,informes);
informes.showmodal;
informes.free;

Cuando llega a la primer linea de codigo(el createForm) la aplicacion queda como en espera.No genera ningun tipo de error ni provoca sobrecarga en la utilizacion de cpu o memoria pero demora mucho mas que la apertura de otros forms. No entiendo el porque de este comportamiento ya que ni siquiera se ejecutan los eventos del formulario.

La pregunta es si alguien sabe que puede estar mal o por donde puedo comenzar a indagar.

Muchas Gracias

Chris 04-03-2008 16:06:12

Tu formulario informes hace uso de datos en bases de datos?, ese puede ser el problema, puede ser que la recuperación de los datos sea lenta.

Neftali [Germán.Estévez] 04-03-2008 16:12:22

Yo también apuesto por acceso a BAse de Datos o acceso a disco.
¿Tienes algun componente de acceso a datos?
¿Lo tienes activado en diseño?
¿Qué componentes tienes el el formulario?

cHackAll 04-03-2008 16:26:35

Concuerdo con D&W y Naftali, sin embargo (y por la falta de información), podría arriesgarme a decir que es un formulario que tiene N componentes, o en su evento OnCreate hace "algo" muy complejo... como crear N componentes en tiempo de ejecución.

kverna 05-03-2008 10:43:42

No, lo extraño es que el delay se produce antes del evento FormCreate que si tiene una serie de asignaciones "pesadas". Si el retardo fuera en ese u otro evento estaria de acuerdo que es algun componente pero se produce anteriormente.

PD: los componentes que tengo son para trabajar con RaveReports :RvSystem,TRvDataSetConnection,TRvProject pero recien los utilizo en el evento FormCreate

Muchas Gracias

Neftali [Germán.Estévez] 05-03-2008 12:13:33

Cita:

Empezado por kverna (Mensaje 270777)
No, lo extraño es que el delay se produce antes del evento FormCreate que si tiene una serie de asignaciones "pesadas".

Piensa que el evento OnFormCreate se lanza después de la creación, para que tú puedas hacer allí inicializaciones y demás cosas que te interesen, pero se lanza una vez que ya se ha creado todo.
Es más, se lanza después de ejecutar el Loaded del formulario, es decir, después de cargar los datos del DFM en los componentes; Por tanto si en diseño has dejado una tabla abierta (por poner un ejemplo), ese valor se cargará en el Loaded y se abrirá la tabla antes de lanzar el evento OnFormCreate.

kverna 06-03-2008 14:32:14

Lo solucione creando nuevamente el formulario y copiando el codigo. La verdad una incognita.

Muchas Gracias


La franja horaria es GMT +2. Ahora son las 12:47:43.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi