Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   "background process" y Aplicacion MDI (https://www.clubdelphi.com/foros/showthread.php?t=35949)

ANG4L 27-09-2006 02:08:51

"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

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.

Código Delphi [-]
type TThreadPriority = (tpIdle, tpLowest, tpLower, tpNormal, tpHigher,
  tpHighest, tpTimeCritical);

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


Saludos...


La franja horaria es GMT +2. Ahora son las 14:21:36.

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