FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Archivos PDF en tus aplicaciones
Para ver Archivos PDF en tus aplicaciones
Bueno ahi les van los pasos: 1. Tener instalado Adobe Acrobat, si no ir dejar de leer este truco. 2. Entrar a Delphi. :) 3. Ir a Component|Import ActiveX Control. 4. En la lista de los controles ActiveX escoger "Acrobat Control for ActiveX (Version X.X)". 5. Dar click en Install. 6. Escoger un paquete donde instalar o es preferible instalarlo en un paquete nuevo y click en OK. 7. Terminar. El control ActiveX se llamara TPDF. Una vez que hayamos instalado en ActiveX podemos agregar uno a cualquier form y poner la propiedad src en el archivo que deseemos y listo. |
#2
|
|||
|
|||
Si, todo bien con el ActiveX, pero necesita el acrobat reader instalado para que ande... El control ejecuta el exe del acrobat reader... No es una opción muy óptima que digamos...
|
#3
|
||||
|
||||
Ok lg_2k5, ¿porqué no propones tú una solución mejor? ;)
|
#4
|
|||
|
|||
No me cabe dudas que usando ActiveX es esa una buena solución, pero existe una vieja solución que he tomado naturalmente de otros que resuelve muchas veces este problema aunque tal vez es algo más larguita y es mediante el uso del API de Windows. Yo les voy a mostrar el código que mejor me trabaja y pueden probar:
Debe haber una función que localice si existe en la PC una aplicación que permita "abrir" el archivo de interés. Esta función localizará por la extensión del fichero y de existir seguirá adelante. De no existir manda mensaje de que no existe la aplicación necesaria en esa PC. Debe aparecer en la cláusula USES "Registry" para que funcione. A continuación la función: function FindAppToOpenDoc(Extension:string):Boolean; var ss:string; begin Result:=FALSE; with TRegistry.Create do try RootKey:=HKEY_CLASSES_ROOT; If KeyExists(Extension) then begin OpenKeyReadOnly(Extension); ss:=ReadString(''); CloseKey; Result:=KeyExists(ss); end; finally Free; end; end; Colocamos luego un procedimiento que nos permitirá ejecutar las cosas. Se muestra a continuación: procedure ShowFicheroApp(Ruta:PChar); begin If FindAppToOpenDoc('\.pdf) then begin ShellExecute(0, 'open', Ruta, nil, nil, SW_SHOWDEFAULT(; end else begin Application.MessageBox( 'No hay aplicación instalada para mostrar files.pdf' +#13#10+ 'Instale ADOBE desde ... sitio de la instalación', 'Error...', MB_ICONERROR+MB_OK); end; end; // Debemos haber llenado el PVCHar Ruta habiendo declarado a Ruta como variable PChar y luego var Ruta:PChar; { En un determinado sitio antes de llamar ShowFicheroApp llenar el valor de PChar con una string que contenga el paso hasta el fichero en cuestión: } Ejemplo Ruta:='C:\Tarea\HermosuraNatural.pdf'; ShowFicheroApp(Ruta); Y ya... Esto se puede usar para cualquier tipo de aplicaciones que desees abrir...con los ajustes necesarios... Gracias si sirvi'o... |
|
|
|