FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Detener ejecucion de programa
Hola, estoy realizando un programita en el que aparecen varios formularios que se usan durante la ejecución pero me preguntaba si es posible agregar un botón para detener la ejecución del programa y lo hice, solo que los formularios no me permiten oprimir dicho botón durante la ejecución, es decir que tienen prioridad y no sé como hacer que se me permita utilizar el botón de "detener" mientras el programa se esta ejecutando. Espero me puedan ayudar resolviendo mi duda, de antemano muchas gracias
|
#2
|
||||
|
||||
Hola Luli, para poder ejecutar eventos del tipo apretar un botón, mientras el programa está ejecutando (no lo indicas, pero suponemos que es un bucle), dentro de ese bucle debes añadir la siguiente linea:
Esto hará dos cosas: - Evitar que se congele tu aplicación - Permitir que puedas ejecutar otros eventos. Espero te sirva. Saludos |
#3
|
|||
|
|||
No entiendo el uso de application.processmessages
Hola muchas gracias por responder. Puse la línea de código que me indicó dentro del ciclo, pero sigue sin permitirme oprimir ningún botón hasta que se termina la ejecución del programa. Los que se muestran son formularios y showmessages. No entiendo como es que funciona application.processmessages entonces voy a leer acerca del uso de esa linea de codigo, gracias por el dato.
|
#4
|
|||
|
|||
Hola Luli.
Mira prueba adicionando varios Application.ProcessMessages; seguidos de sleep(100); Que Sucede??? La rutina Application.ProcessMessages;Lo que hace es decirle a Windows que procese los mensajes que tene en la cola de mensajes. Al ponerlo solo una vez puede que el mensaje que tu necesitas que se procese no tenga tiempo de procesarse por Windows, por tanto no te hara nada.La inclusion del sleep(100), lo que hace es exactamente eso, poner a dormir a tu aplicacion por 100 milisegundos, dandole asi tiempo a Windows a que procese los mensajes que tiene en la cola, donde supuestamente ya debiera estar el tuyo.Esto a mi me ha funcionado en la mayoria de las veces que lo he hecho, cuando un solo Application.ProcessMessages; no me ha resultado.O sea lo que he puesto es algo asi. Por supuesto que esta solucion no es muy profesional y ni siquiera a mi me agrada, pero funciona en la mayoria de las veces (No el 100%) como te comente.Tiene como inconveniente que te inserta una demora adicional a tu procesamiento y si lo haces dentro de un ciclo muy largo(for i=0 to 1000000), el tiempo de procesamiento se te elevaria demasiado.Quizas pudieras bajar el valor del sleep de 100 a uno mas bajo para que sea mas eficiente o subirlo un poco si no te agarra el mensaje.Bueno espero que tu caso caiga dentro de los que se resuelven con esto. Saludos Juan Carlos Última edición por JCarlosas fecha: 01-05-2006 a las 14:33:36. |
#5
|
||||
|
||||
Si acaso estas realizando un proceso bastante "gordo" quizás fuera mejor el uso de hilos (Threads), de esa forma se crea un proceso casi independiente del Form, permitiendo el uso de botones.
Es lo que suele hacerse en las búsquedas de Ficheros, por ejemplo. SAludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#6
|
|||
|
|||
Hola Junior.
Si tienes a mano algun ejemplo sencillo de como hacerlo de esa forma te lo agradeceria, pues una vez intente hacerlo por hilos independientes como planteas y se me armo un rollo que termine desechando la idea pues no supe hacerlo. Pero efectivamente esa creo que seria la mejor solucion. Claro no la mas sencilla Saludos y gracias de antemano. Juan Carlos |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Problemas con la ejecucion del programa | daly | Varios | 4 | 18-10-2005 14:39:06 |
Bloquear la ejecución de un programa. | alfredosg19 | Varios | 2 | 19-03-2005 18:17:47 |
Ejecucion de Programa en Kylix | karimnot | Lazarus, FreePascal, Kylix, etc. | 1 | 03-09-2004 21:33:28 |
Ejecucion de un programa en una PC | silviodp | Varios | 3 | 23-01-2004 01:53:09 |
programa en ejecucion??? | Tanix | Varios | 2 | 11-12-2003 14:15:39 |
|