FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Ayuda: Necesito refrescar la aplicación MIENTRAS se copian archivos muy grandes
Hola estimados colegas de ClubDelphi,
Necesito que me echen una pequeña ayuda, Pasa que las funciones CopyFile y SHFileOperation solo me refrescan el formulario después de haber terminado el copiado de un archivo, es decir:
Esta función es muy pobre y no sirve, puesto que MIENTRAS el copiado está en progreso, el formulario igual es inaccesible e innoperable (por ejemplo, con archivos muy grandes que toman más tiempo en copiarse). En el caso con SHFileOperation, se refresca la UI de la API de Windows (el diálogo que se muestra cuando el flag es especificado), pero yo no quiero mostrar un diálogo de copiado de esa API, sino que un formulario que yo mismo hice para mostrar el progreso (esto es el progreso en bytes), pero, el problema es que MIENTRAS se está copiando un archivo grande (por ejemplo, de 300 MB). La aplicación queda congelada y el usuario no puede mover el formulario. Sólo cuando termina de copiar se refresca por la especificación de Application.ProcessMessages en la siguiente línea, pero cuando comienza a copiar otro archivo grande, nuevamente hay que esperar a que termine el copiado para que el formulario reaccione. ¿Cómo se puede solucionar este problema en forma eficiente, sin componentes, etc? Saludos y de antemano gracias amigos como siempre. Última edición por Black_Ocean fecha: 10-04-2008 a las 03:44:23. |
#2
|
|||
|
|||
Hola amigo
Lo que pasa es que el ProcessMessage esta sin efecto ya que eso se usa para rutinas de loop, yo creo que se podria hacer algo como leer por bloques y copiarlos al otro archivo y en ese loop si tendría efecto el ProcessMessage. Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
#3
|
||||
|
||||
Cita:
Si me pudieras explicar y enseñar un poco aquello que me dices te lo agradecería bastante. De antemano, gracias. Última edición por Black_Ocean fecha: 10-04-2008 a las 03:54:34. |
#4
|
|||
|
|||
Bueno en la ayuda de delphi viene este ejemplo
Lo que no se es como se comportaria en tiempo de copiado, es cosa de que lo pruebes. Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
#5
|
||||
|
||||
La solución mas natural, me parece, es el uso de CopyFileEx, que permite introducir una función CallBack, que será llamada constantemente de vuelta por la rutina de copia a través de la que el proceso que llama (tu aplicación) es notificada del avance de la copia.
Entonces, podrías actualizar la interfaz de usuario para reportar el progreso de la copia. Por otro lado, si lo que querés es que la aplicación siga utilizándose mientras la copia se realiza, podes lanzarla en otro hilo. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#6
|
|||
|
|||
Yo creo que se puede solucionar mucho mejor con un thread.
Añades esto en tu formulario. Para ejecutarlo:
Salu2 espero que te sirva. |
#7
|
||||
|
||||
Tu aplicación recivirá el mensaje WM_USER cuando la copia finalice (ejemplo). Quien dá mas?? Saludos |
#8
|
||||
|
||||
Gracias a todos por su ayuda. Probaré los métodos que me han señalado.
Saludos y como siempre muy amables |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Necesito ayuda para recuperar unos archivos | ddd_ddd | Varios | 2 | 24-10-2007 15:49:26 |
Necesito ayuda con indices .ndx para archivos dbf | dinover7 | Conexión con bases de datos | 1 | 21-05-2007 21:41:34 |
Necesito crear una aplicacion.... ayuda please | Enable | Varios | 8 | 10-09-2006 17:51:01 |
Necesito ayuda para manerjar archivos | meosre | Varios | 2 | 08-09-2005 18:37:34 |
Hola Es mi primer mensaje en este Foro y necesito ayuda para archivos XML | Juan_Carlos_P | Gráficos | 2 | 08-08-2005 19:11:17 |
|