PDA

Ver la Versión Completa : "background process" y Aplicacion MDI


ANG4L
27-09-2006, 02:08:51
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

roman
27-09-2006, 03:17:39
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

ANG4L
27-09-2006, 15:32:41
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

maeyanes
27-09-2006, 15:42:16
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...

ANG4L
27-09-2006, 15:57:39
Eso mismo, pero cambiando la prioridad a esos procesos desde el principal

maeyanes
27-09-2006, 16:05:42
Claro que le puedes poner prioridad a cada proceso. La clase TThread tiene una propiedad Priority que se usa para este fin.


type TThreadPriority = (tpIdle, tpLowest, tpLower, tpNormal, tpHigher,
tpHighest, tpTimeCritical);


Para mayor información, lee en la ayuda de Delphi sobre la clase TThread.


Saludos...