FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Muchas gracias..
|
#2
|
||||
|
||||
Para ir un poco mas abajo....
Windows se comunica con las aplicaciones enviándo "mensajes" a cada una. De esta manera, cuándo ocurre algún movimiento del mouse, o se presiona una tecla en el teclado, windows determina las aplicaciones "interesadas" en dicho suceso (por ejemplo, la que tiene el foco es la que recibe los mensajes del teclado) y le envía un mensaje, por decir algo:
Todas las aplicaciones windows deben registrar una rutina que procesará los mensajes, que es básicamente un ciclo que está leyendo contínuamente la cola de mensajes. Todo esto lo hace la vcl de delphi por nosotros... Dado que una aplicación delphi se ejecuta por defecto en un solo hilo, la "magia" se pierde cuándo haces un ciclo que demora un poco, o mucho... pues tu aplicación deja de responder a los mensajes del sistema. Esto no solo tiene el inconveniente de dejar "congelada" la interfaz de usuario, sino que el propio windows detecta que "la aplicación no responde", lo que pone nerviosos a algunos usuarios. Una llamada a Application.ProcessMessages, como ya te han dicho, alivia esta situación, pero tiene a su vez sus inconvenientes, y vale la pena estar consciente de ellos: Por ejemplo, si normalmente haces un proceso con un botón, en su evento OnClick, que recorre los registros de una base de datos para realizar cierta operación, al añadir una llamada a ProcessMessages, le dará la oportunidad al usuario de hacer Clic nuevamente en el botón mientras el proceso está ejecutándose, lanzará nuevamente el proceso, y eso no siempre es deseable. Otra cosa indeseable, por ejemplo, es que el usuario puede cerrar la ventana a medio procesar. Son cosas que no son ni buenas ni malas por si solas... pero que hay que considerar y que depende de vos y tu habilidad para detectarlas y enfrentarlas el lograr un sistema robusto. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Tthread Vs. Application -> ProcessMessages(); | Peterman | Varios | 8 | 31-05-2007 03:05:03 |
Application.ProcessMessages y Application.HandleMessages | molinero1 | Varios | 13 | 09-05-2007 14:53:29 |
Problema con Application.ProcessMessages | Coco | API de Windows | 0 | 25-02-2005 15:28:44 |
No funciona Application.ProcessMessages | Sr_Sombrero | Varios | 0 | 24-01-2005 22:21:01 |
Web Application | LILYBEL | Internet | 3 | 21-10-2004 15:18:10 |
|