![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
||||
|
||||
|
Si la lectura es un bucle, puedes poner una bandera (variable booleana) para cancelar la carga, dentro del bucle debes poner un Application.ProcessMessages.
En caso de que la carga se realice mediante un XX.LoadFromFile ... poco podrás hacer (de momento no se me ocurre nada). Cuanta más información aportes, mejor. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
#2
|
|||
|
|||
|
Gracias por tu aportacion, te especifico un poco mas, es como tu dices es un bucle while de lectura de un fichero y mi intencion es desde un boton del dialog poder cancelar el bucle y cerrar la ventana, puedes especificarme un poco mas como puedo poner lo de la bandera que me dices y lo de la Application.ProcessMessages. Gracias por tu respuesta, otra cosa que no te comentado el formulario ya tiene un boton de cancelar, pero aunque lo aprete no hace nada, ni siquiera deja apretarlo hasta que acabe el proceso.
Gracias |
|
#3
|
||||
|
||||
|
Suponiendo que tu bucle es algo como
lo que propone Lepe es que lo modifiques así:
Application.ProcessMessages permite que tu formulario procese los mensajes en cada vuelta del ciclo, de manera que puedas orpimir el botón de Cancelar. En el evento OnClick de ese botón pondrías:
// Saludos |
|
#4
|
||||
|
||||
|
Aquí deje un ejemplo de como hacer algo similar pero usando threads.
http://www.clubdelphi.com/foros/show...67&postcount=7 |
|
#5
|
|||
|
|||
|
Gracias a todos, he solucionado el problema de la manera que me comento roman y Lepe lo unico que he detectado que no se muestra como se apreta el boton, pulsas y al cabo de unos segundos se cierra, pero no vez el efecto de pulsar el boton y tampoco es automatico, no se si me explico.
Nuevamente gracias a todos |
|
#6
|
||||
|
||||
|
Hola,
¿Pusiste un "Application.ProcessMessages"? Tiene toda la pinta de que no, pero, si lo pusiste y aún así encuentras el problema que describes... la verdad, no sé si se ganaría algo cambiando un poco las cosas tal que así:
También puedes probar:
O dejarlo como Román decía al principio, pero:
O, por otro lado,... tal vez utilizar algún "Hilo" aparte en tu aplicación para leer el archivo de marras... |
|
#7
|
|||
|
|||
|
Gracias Dec por las variantes, si que me acorde de poner lo de Application.ProcessMessages y he probado hacer lo que me dices, el resultado es mas o menos igual, pero yo creo que es por la cantidad de operaciones que hace antes de dar la vuelta al bucle, por eso el intervalo de tiempo, desde que lee uno hasta que lee otro y vuelve a pasar por Application.ProcessMessages actualiza unos ficheros, crea una plantilla personalizada, envia un PDF personalizado por Email, etc. Realmente no es que no funcione lo unico es que se queda como si no hubieras pulsado nada hasta que vuelve al bucle y pasa por el ProcessMessages, al menos que haya algo que se pueda poner al propio formulario para que detenga el proceso mientras todavia no haya dado la vuelta.
Un saludo |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| EXCEPTION con parametros u otro comando para abortar | fcios | Firebird e Interbase | 10 | 31-03-2007 08:39:16 |
| ¿como abortar ejecución de eventos? | pjjorda | Varios | 5 | 06-06-2006 20:59:59 |
| Como Abortar mi APP sin q aparescan Mens de ERROR | pcicom | OOP | 5 | 22-03-2005 09:22:13 |
| Abortar un Ciclo While | jmedina | Varios | 2 | 08-03-2005 20:48:17 |
| abortar inmediatamente | acrophet | Varios | 4 | 20-10-2003 18:07:18 |
|