![]() |
"background process" y Aplicacion MDI
Buenas gente....
Les consulto, tengo una aplicacion MDI funcionando tranqui, ahora, una nueva funcion, que es bastante compleja al realizarla tarda y no deja mientras seguir trabajando con otras ventanas. Alguien sabe como lograr una especie de background proccess, para evitar que consuma consumos ? O algo por el estilo, o algo ! Saludos ! :D |
Si el proceso que tarda puede dividirse en pasos, por ejemplo, que sea un ciclo, antes de cada paso puedes colocar un Application.ProcessMessages para permitir que el resto de la aplicación procese los mensajes. Si no, puedes montar ese proceso en un hilo (thread) distinto. Delphi facilita el uso de threads mediante la clase TThread. Consulta la ayuda de Delphi para que veas una descripción de lo que hay que hacer.
// Saludos |
Como anda ud Roman !
Estoy testeando eso que me dijo.... ahora, en teoria las ventanas mdi se ejecutan en Thread ? Porque eso seria una buena solución, desde el principal ir asignadole las prioridades a cada ventana segun el caso ! Sigo con esto, y luego le digo que salio ! Saludos, y gracias (como siempre) :D |
No tanto las ventanas, sino los procesos complejos y tardados que se hacen en cada una. Esto es, abres una ventana MDI de forma normal y si esta ventana realiza un proceso que bloquea toda la aplicación mientras se ejecuta, entonces este proceso lo ejecutas en un thread.
Saludos... |
Eso mismo, pero cambiando la prioridad a esos procesos desde el principal
|
Claro que le puedes poner prioridad a cada proceso. La clase TThread tiene una propiedad Priority que se usa para este fin.
Para mayor información, lee en la ayuda de Delphi sobre la clase TThread. Saludos... |
La franja horaria es GMT +2. Ahora son las 03:19:01. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi