![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
El problema es que los procedimientos de redibujado estarán ocupando todo el tiempo y además es exponencial a medida que vas incrementenado el número de componentes.
Lo primero que se me ocurre es que crees los componentes antes de visualizar el form. A ver si así evitas que se lancen procedimientos de pintado. ¿Dónde llamas actualmente a este procedimiento? ¿En el OnShow? ¿Después del OnShow? Otra opción es probar, por ejemplo a crearlos dentro de un frame o contenedor con este oculto, y una vez creados todos visualizarlos...
A ver si esto mejora el tiempo.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
#2
|
|||
|
|||
|
Llamaba en el evento oncreate...
He probado lo que me dices, he puesto todo en un panel con visible false y en onshow panel.visible:=true... hasta llegar a la linea panel.visible:=true ha sido inmediato y al ejecutar la linea dicha hace exactamente lo mismo que antes de modificar nada!!!, luego es evidente que es el dibujado y no la creación. habria que encontrar la manera que solo lo dibujara una vez al final y no componente por componente pero no se me ocurre nada aparte de lo que ya hemos probado ¿alguna idea? Gracias |
|
#3
|
||||
|
||||
|
Lo siguiente que se me ocurre es intentar acceder a los eventos WMPAINT de los componentes e intentar que no se lancen hasta que acabe la creación.
Algo así como el DisableControls de los componentes de Base de Datos. Habría que revisar la VCL y ver los mensajes que se están lanzando para pensar en alguna opción...
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
#4
|
||||
|
||||
|
No la he probado nunca, así que no te se decir si va a servir de algo, pero por probar que no quede.
Revisa información sobre la API LockWindowUpdate. Échale un vistazo también este mensaje de los foros de EMB.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
#5
|
|||
|
|||
|
Cita:
|
|
#6
|
|||
|
|||
|
Cita:
Saludos.. |
|
#7
|
||||
|
||||
|
Bueno, yo hace tiempo para cosas similares a esta utilicé el componente TSimpleGraph de DelphiArea.
Para que te hagas una idea, aquí puedes ver algunas imágenes y hacerte a la idea del número de objetos con los que se trabajaba. Cada objeto es independiente y tiene sus propiedades, se puede seleccionar, arrastrar,... Cambiar ahora todo el diseño puede ser complejo y costoso, pero al menos tienes una alternativa. Sería bueno, que utilizaras un Profiler, para ver dónde se está "perdiendo" ese tiempo exactamente.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
#8
|
|||
|
|||
|
Cita:
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Delphi 2007, consumo excesivo de cpu | Casimiro Noteví | La Taberna | 3 | 05-01-2010 23:23:36 |
| consultas con excesivo tiempo de respuesta a una tabla | eddvedder | Conexión con bases de datos | 1 | 22-01-2009 20:35:25 |
| excesivo uso de transacciones | macro32 | Conexión con bases de datos | 5 | 22-04-2008 09:25:41 |
| Crecimiento excesivo | jsanchez | Firebird e Interbase | 21 | 08-03-2007 18:52:29 |
| Excesivo consumo de memoria | 1111111 | Firebird e Interbase | 11 | 18-06-2005 23:08:20 |
|