Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros temas > Trucos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Los mejores trucos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-07-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 12.560
Poder: 27
dec Va camino a la famadec Va camino a la fama
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.
Responder Con Cita
  #2  
Antiguo 10-07-2006
lg_2k5 lg_2k5 is offline
Registrado
 
Registrado: abr 2006
Posts: 1
Poder: 0
lg_2k5 Va por buen camino
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...
Responder Con Cita
  #3  
Antiguo 10-07-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 12.560
Poder: 27
dec Va camino a la famadec Va camino a la fama
Ok lg_2k5, ¿porqué no propones tú una solución mejor? ;)
Responder Con Cita
  #4  
Antiguo 16-08-2006
marioestevez marioestevez is offline
Registrado
 
Registrado: jul 2006
Posts: 9
Poder: 0
marioestevez Va por buen camino
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...

Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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


La franja horaria es GMT +2. Ahora son las 14:51:12.


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