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 05-09-2012
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
Abrir PDF y esperar a que termine

Estimados, estoy con aplicación que abre archivos pdf que estan guardados en una BF Firebird 2.5.
La rutina es esta

Código Delphi [-]
begin
i := 0;
while i <> -1 do
begin
   inc(i);
   filename := 'C:\documento_'+inttostr(i)+'.pdf';
   if not FileExists(fileName) then i:=-1;
end;
TBlobField(ibquery2.FieldByName('pdf')).SaveToFile(filename);
ShellExecute(factura_revisarform.Handle,nil,PChar(filename),'','',sw_shownoactivate); 
end;

Revisa que no exista el archivo documento_x, y una vez que no lo encuentra lo guarda y en seguida lo abre. Esto funciona sin problema, pero al cabo de un tiempo tengo muchisimos: por ejemplo documento_10000.

El se podría resolver detectando cuando se cierra el pdf y eliminar el archivo.
Se les ocurre alguna otra idea, se podra guardar en memoria y abrir sin tener que guardarlo necesariamente en el disco? esta es la idea que mas me gusta, pero no se como ni si se puede hacer!!

Espero me puedan ayudar.
Responder Con Cita
  #2  
Antiguo 05-09-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Desconozco si existe alguna forma de visualizar el pdf sin guardarlo previamente en disco, pero lo que sí puedes hacer es usar el control ActiveX de Acrobat que se instala cuando instalas el Acrobat Reader. Lo importas a delphi usando el menú Component|Install ActiveX Control. Con este control puedes visualizar el documento dentro de tu aplicación y así tienes control de cuándo se cierra y sabes cuándo borra el archivo.

// Saludos
Responder Con Cita
  #3  
Antiguo 05-09-2012
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
Gracias Roman, funciono perfecto. Sin embargo, cuando distribuyo la aplicación no corre en otros PC. Copie la libreria (adobe.bpl) del componente y sigue sin ejecutarse. No arroja ningún error, simplemente no se ejecuta.

Como podre solucionar esto?
Responder Con Cita
  #4  
Antiguo 06-09-2012
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.234
Poder: 20
ElKurgan Va camino a la fama
Cita:
Empezado por mjjj Ver Mensaje
Gracias Roman, funciono perfecto. Sin embargo, cuando distribuyo la aplicación no corre en otros PC. Copie la libreria (adobe.bpl) del componente y sigue sin ejecutarse. No arroja ningún error, simplemente no se ejecuta.

Como podre solucionar esto?
Porque el bpl es de Delphi, pero en los equipos tiene que estar instalado o registrado el Active X de Adobe.

Un saludo
Responder Con Cita
  #5  
Antiguo 06-09-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Así es, como dice ElKurgan, debes tener instalado el Acrobat Reader, lo que no es inusual. Otros visors de PDFs, como Foxit, también incluyen un control ActiveX.

// 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
Ejecutar un programa y esperar a que termine. jplj Varios 2 04-12-2008 14:54:53
Ejecutar archivo y esperar que termine Ana María API de Windows 2 05-09-2008 19:57:54
Ejecutar Exe de mi Aplicacion y Esperar a que Termine spider_Ramon API de Windows 4 07-09-2005 01:07:01
ejecutar archivo y esperar que termine agustincs API de Windows 4 18-08-2004 22:53:21
Esperar a que termine un proceso felixgo OOP 4 02-06-2004 19:46:45


La franja horaria es GMT +2. Ahora son las 06:40:43.


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