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-08-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.055
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Aunque si lo que se quiere es que abra múltiples pdfs "independientes" y los tenga abierto cuanto quiera y seguir trabajando con el programa y "pasando" totalmente de los pdf abiertos, lo mismo puede ser una solución el crear una lista donde se van añadiendo los nombres de los pdfs abiertos y cada cierto tiempo intentar borrarlos. Si están en uso dará error y en caso contrario se borrarán.
También sin listas ni nada, a lo bruto, ejecutar el bucle e intentar borrar los que estén "libres".

Código:
procedure timercadaxminutos
  for i=1 to 100
    try
      borrar( 'documento.'+i+'.pdf'
    catch
    end
end
Responder Con Cita
  #2  
Antiguo 20-08-2018
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.473
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Aunque si lo que se quiere es que abra múltiples pdfs "independientes" y los tenga abierto cuanto quiera y seguir trabajando con el programa y "pasando" totalmente de los pdf abiertos, lo mismo puede ser una solución el crear una lista donde se van añadiendo los nombres de los pdfs abiertos y cada cierto tiempo intentar borrarlos. Si están en uso dará error y en caso contrario se borrarán.
También sin listas ni nada, a lo bruto, ejecutar el bucle e intentar borrar los que estén "libres".

Código:
procedure timercadaxminutos
  for i=1 to 100
    try
      borrar( 'documento.'+i+'.pdf'
    catch
    end
end

Ya, eso sería una solución aunque la verdad no me resulta muy elegante. ¿No hay forma de saber cuando se cierra el visor pdf para acto seguido borrar el fichero que ha abierto?


Saludos
__________________
Be water my friend.
Responder Con Cita
  #3  
Antiguo 20-08-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.055
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Depende, si los abres mediante RunAndWaitShell(....,sw_showmodal), justo al cerrar el pdf se podrá borrar por su nombre.
Código:
Tratarpdf( i )
  cFicheroPdf = 'documento'+inttostr(i)+'.pdf';
  RunAndWaitShell( cFicheroPdf, ... ..., sw_showmodal)
  borrar( cFicheroPdf)
Así no tendrías que saber cuándo se ha cerrado.


De otra forma no sé, porque imagino que se tendrá que estar verificando si todavía existe. Algo como lo que comenté antes, mantener una lista de los pdfs que se han abierto y cada cierto tiempo hay que comprobar si está todavía la ventana abierta, en caso contrario se podrá borrar.
A ver si encuentras algo sobre windows.findwindow

Última edición por Casimiro Notevi fecha: 20-08-2018 a las 19:33:57.
Responder Con Cita
  #4  
Antiguo 20-08-2018
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.473
Poder: 21
newtron Va camino a la fama
No puedo usar RunAndWaitShell porque son procesos no modales, buscaré lo que me comentas de windows.findwindowa ver qué veo.


Gracias Casimiro y ASAPLTDA.


Saludos
__________________
Be water my friend.
Responder Con Cita
  #5  
Antiguo 21-08-2018
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
La opción que te propone Casimiro sirve para procesos no modales


Código Delphi [-]
begin
  RunAndWaitShell('D:\Prueba.pdf', '', SW_SHOW);
  Beep();
end;


Saludos.
Responder Con Cita
  #6  
Antiguo 21-08-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.055
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Parece que el problema que tiene es saber cuándo ha cerrado el usuario el fichero pdf, para proceder a eliminarlo.
No creo que haya forma de saberlo mediante el nombre de la ventana tampoco porque cada uno puede usar un visor de pdfs distinto y el nombre también será distinto. Creo que la solución pasa por saber qué pdfs se han abierto y luego intentar borrarlos, pero ¿cuándo lo ha cerrado el usuario? Me parece que no va a quedar otra que el bucle:
Código:
for i=1 to 100
  if fileexists('documento'+inttostr(i)+'.pdf') then
    deletefile('documento'+inttostr(i)+'.pdf')
Responder Con Cita
  #7  
Antiguo 21-08-2018
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.473
Poder: 21
newtron Va camino a la fama
Andalaleche.... pensaba que esto del "RunAndWaitShell" dejaba "pillado" al programa hasta que no cerrara el visor.



Gracias y un saludo
__________________
Be water my friend.
Responder Con Cita
  #8  
Antiguo 21-08-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.055
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por newtron Ver Mensaje
Andalaleche.... pensaba que esto del "RunAndWaitShell" dejaba "pillado" al programa hasta que no cerrara el visor.
Gracias y un saludo
No, por eso decía que podías borrarlo al "regresar".
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
Gestionar archivos adjuntos Delphitest Varios 6 22-12-2014 21:20:43
Archivos Temporales al usar un Query mrmanuel Conexión con bases de datos 3 05-09-2005 18:33:42
Archivos temporales generados por TQuerys Balda Conexión con bases de datos 0 14-04-2005 14:18:29
Como Creo Archivos Temporales en un programa hecho en red jorge restrepo Firebird e Interbase 3 23-12-2003 18:02:23


La franja horaria es GMT +2. Ahora son las 18:07:04.


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