![]() |
Como parar un programa en ejecucion???
Hola, mi problema es que tengo un programa que realiza unas operaciones muy lentas dependiendo del tamaño de matrices que meta, vamos que cuando esta el programa calculando puede tirarse varios minutos ya que son varios bucles for anidados, la cosa es que me gustaria poder poner un boton del tipo cancelar, que pueda interrumpir la operacion en cualquier momento, esto siempre lo he hecho en c++ con la funcion kbhit() dentro de un while, pero aqui no veo la forma, y es que me da la impresion de que el programa se queda ahi calculando y no me deja dar ni al boton salir, alguna sugerencia?, gracias y salu2.
|
Puedes colocar una variable de tipo flag que se active al presionar el boton salir, y en cada bucle del for mas interno validas si se activo si se activo paras el bucle y listo, yo lo haria asi no se si exista el equivalente a esa instruccion
|
hola
Pues en Delphi has de hacerlo más o menos de la siguiente manera:
Mas o menos Espero te sirva |
Además de lo que dice eduarcol habrá que agregar un Application.ProcessMessages en algún punto de cada ciclo para que se pueda procesar el click del botón.
// Saludos |
Cita:
Gracias a Cadetill por la explicacion grafica :D :D |
Muchas gracias por contestar tan rapido, de la forma que decis eduarcol y cadetill, ya lo hice, pero sin resultado, ya que como dije se queda como pillado y no me deja pulsar el boton, probare lo que dice roman, muchas gracias a todos, salu2
|
A lo que se refiere Roman
Cita:
|
Cita:
¿Tal vez el problema es el lugar donde ubicaste la llamada a procesar mensajes? Mejor si te asegures que se lo llame alrededor de unas 4 a 8 veces por segundo. Ni muy seguido en lo posible ni tan poco frecuente que aún tengas que esperar un rato hasta que se procesen los mensajes. |
Pues ya me va perfectamente con el ejemplo que me habeis puesto, muchas gracias de new, salu2
|
La franja horaria es GMT +2. Ahora son las 06:02:27. |
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