Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-05-2008
Avatar de Gaim2205
Gaim2205 Gaim2205 is offline
Miembro
 
Registrado: ago 2007
Ubicación: Durango, Mexico
Posts: 144
Poder: 17
Gaim2205 Va por buen camino
Como evitar que mis aplicaciones se "cuelguen"

Trabajo con delphi 7. La mayoría de las aplicaciones que tengo que programar acceden a servidores y/o equipos remotos. Al ejecutar algun query un poco "grande" o no se.... al copiar un achivo con CopyFile de un directorio remoto a otro, mis aplicaciones se "cuelgan" mientras trabajan y ésto le da al usuario la impresión de que ha habido algun fallo.

Hay alguna forma de evitar esto? Gracias por su ayuda....
Responder Con Cita
  #2  
Antiguo 20-05-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Revisa éste hilo.
Responder Con Cita
  #3  
Antiguo 20-05-2008
Avatar de paladincubano
paladincubano paladincubano is offline
Miembro
 
Registrado: jul 2007
Posts: 147
Poder: 17
paladincubano Va por buen camino
Para evitar eso. Usa como bien te dicen el

Application.ProcessMessage;

Ahora, cuando usas el CopyFile, si son muchos ficheros en un ciclo, pones esa instruccion dentro del ciclo y puedes hasta usar un progressBar, peroooooooo, si el archivo es muy grande, veras la misma sensacion de cuelgue porque dentro del Procedimiento CopyFile no hacen ese procedimiento. Para evitar eso creo que deberias hacer tu mismo un copyfile, hay miles de ejemplo de como copiar ficheros uno mismo. (Para mi es mejor porque lo controlo todo desde el mismo programa y manejo mucho mejor el progressbar)
Suerte.
Responder Con Cita
  #4  
Antiguo 20-05-2008
Avatar de Gaim2205
Gaim2205 Gaim2205 is offline
Miembro
 
Registrado: ago 2007
Ubicación: Durango, Mexico
Posts: 144
Poder: 17
Gaim2205 Va por buen camino
así lo hice

Sacado de las páginas de Torry

Código Delphi [-]
procedure TForm1.Cargar(Source, Destination: string);
var
  FromF, ToF: file of byte;
  Buffer: array[0..4096] of char;
  NumRead: integer;
  FileLength: longint;
begin
  AssignFile(FromF, Source);
  reset(FromF);
  AssignFile(ToF, Destination);
  rewrite(ToF);
  FileLength := FileSize(FromF);
  with Progressbar1 do
  begin
    Min := 0;
    Max := FileLength;
    while FileLength > 0 do
    begin
      BlockRead(FromF, Buffer[0], SizeOf(Buffer), NumRead);
      FileLength := FileLength - NumRead;
      BlockWrite(ToF, Buffer[0], NumRead);
      Position := Position + NumRead;
    end;
    CloseFile(FromF);
    CloseFile(ToF);
  end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
  Cargar('c:\Windows\Welcome.exe', 'c:\temp\Welcome.exe');
end;
Responder Con Cita
  #5  
Antiguo 20-05-2008
Avatar de paladincubano
paladincubano paladincubano is offline
Miembro
 
Registrado: jul 2007
Posts: 147
Poder: 17
paladincubano Va por buen camino
No esta mal, pero hay metodos muchos mejores utilizando los Streams. Creo yo.
Responder Con Cita
  #6  
Antiguo 21-05-2008
Avatar de Gaim2205
Gaim2205 Gaim2205 is offline
Miembro
 
Registrado: ago 2007
Ubicación: Durango, Mexico
Posts: 144
Poder: 17
Gaim2205 Va por buen camino
Pues compártelos.
Responder Con Cita
  #7  
Antiguo 21-05-2008
Avatar de xEsk
[xEsk] xEsk is offline
Miembro Premium
 
Registrado: feb 2006
Posts: 454
Poder: 19
xEsk Va por buen camino
Yo para tareas tediosas, que se que van a tardar un buen rato, suelo programarlas en un thread independiente, y luego advierto al usuario que se esta trabajando y debe esperar... Pero como la aplicación no esta "detenida" ya no da la sensación de que este colgada... y de paso le metes algún progress bar de estos infinitos (circulares).

Saludos.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Al evitar que cierren Windows, me sale la ventana de error "Finalizar Tarea" :( Wonni API de Windows 1 20-08-2007 16:02:21
Como hacer que se vea "Si" en vez de "TRUE" en un DBGrid lu9eui C++ Builder 2 07-08-2007 04:03:13
Cinco normas para evitar el "phishing" marcoszorrilla Noticias 56 02-05-2006 21:07:55
Evitar navegar desde barra "Dirección" de MI PC Luis F. Orjuela API de Windows 1 10-02-2006 19:56:16


La franja horaria es GMT +2. Ahora son las 05:48:27.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi