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 26-04-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Problema con archivo de recursos

Hola, sé que tengo otro hilo también sobre recursos, pero son problemas distintos y por eso inicie este.

A ver, tengo este procedimiento que carga una web insertada dentro de un archivo .res:
Código Delphi [-]
procedure Tdona.FormActivate(Sender: TObject);
begin
  web.Navigate('res://blendernotes.exe/web');
end;

Pero cuando se carga el formulario que tiene el webBrowser, no muestra ninguna pagina, exactamante el navegador web de la aplicacion dice que la pagina no se encuentra.

El texto del archivo .rc es bien sencillo:
Código:
web      html     app.html
entonces ¿por que no se muestra la pagina en el navegador? Por cierto la directiva "{$R 'recursos.res' 'recursos.rc'}" está en su sitio.

Gracias y saludos.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #2  
Antiguo 27-04-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Hola he modificado un poco el código, ahora en el evento OnCreate del formulario tengo esto:

Código Delphi [-]
procedure TytRepro.FormCreate(Sender: TObject);
var
  res: String;
  Name: array[0..255] of char;

begin
  GetModuleFileName(hInstance,name,255);
  res:= 'res://'+strPas(name)+'/rt_html/ini';
  web.Navigate(res);
end;

En el formulario principal del proyecto tengo {$R recursos.res} colocado después de implementation y el archivo .rc es este:
Código:
ini            rt_html           discardable              "inicio.html"
Decir que el rc lo creo directamente con delphi y es este mismo quien al compilar, se encarga de crear el "recursos.res", pero sigue sin funcionar, cuando entro en el formulario que lleva incluido el TWebbrowser, este dice que no se puede mostrar la pagina.

¿alguna sugerencia?
Saludos.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #3  
Antiguo 27-04-2014
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

A ver si este tutorial del amigo Peter Jhonson puede ayudarte.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #4  
Antiguo 27-04-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Hola dec, gracias por el aporte, ya había solucionado el error, al revisar todo el código, vi que tenía una linea en el onActivate del formulario que estaba en conflicto con el procedimiento onCreate, solo he tenido que borrar esa linea y ya tira.

Ahora intento hacer algo parecido pero con un archivo pdf. Tengo instalado en el ordenador el visor de pdf Foxireader, que al instalarse deja un activeX, pues bien he metido ese activeX en el delphi y todo va bien, el problema es que cuando pongo "foxireader.openfile(...) no sé como hacer la llamada al archivo de recursos que tiene el documento pdf. Estoy buscando por la red pero no encuentro nada.

Saludos y otra vez gracias.

P.D.:Por cierto, el problema en parte lo arreglé gracias a este ejemplo que encontre en la web y que he subido al ftp del foro. Ha sido la unica forma que me ha funcionado de las que he mirado.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.

Última edición por danielmj fecha: 27-04-2014 a las 18:32:49.
Responder Con Cita
  #5  
Antiguo 27-04-2014
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Hasta donde yo llego es el objeto "WebBrowser" el que acepta archivos HTML como recursos. Ahora bien, esto no quiere decir que acepte también otro tipo de archivos. Una posible solución que entiendo funcionaría pasa por usar el objeto "WebBrowser" para mostrar un archivo HTML que a su vez contenga (embebido) un archivo PDF. Busca en la red por cómo embeber un archivo PDF dentro de un documento HTML. Esto se hace de forma similar a cuando necesitas embeber un vídeo de Youtube, por ejemplo.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #6  
Antiguo 27-04-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
interesante Dec, voy a mirar a ver que encuentro. Gracias y saludos.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #7  
Antiguo 28-04-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Hola, siguiendo con la busqueda de soluciones para meter un pdf en la aplicacion, me tope con esta herramienta http://www.swftools.org/ que convierte los pdf a .swf creando dos archivos el .html y el propio .swf, estos dos archivos estan dentro del archivo de recursos, pero cuando ejecuto la aplicacion, si bien se carga el plugin de flash, no se muestra el contenido que seria en este caso, el pdf convertido, sino que se queda en blanco. Es decir que el TWebborwser del formulario se queda en blanco sin mostrar información alguna.

Por otra parte, delphi detecta una serie de errores en el archivo html creado por la herramienta "swftools" y no sé si será por eso que no muestra nada. El código html sería este:
Código:
<html>
<body style="padding: 0px; margin: 0px">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
        width="100%"
        height="100%"
        codebase="http://active.macromedia.com/flash5/cabs/swflash.cab#version=8,0,0,0">
        <param name="MOVIE" value="guia.swf">
        <param name="PLAY" value="true">
        <param name="LOOP" value="true">
        <param name="QUALITY" value="high">
        <param name="FLASHVARS" value="zoomtype=3">
        </object>
          <embed src="guia.swf" width="100%" height="100%"
                 play="true" ALIGN="" loop="true" quality="high"
                 type="application/x-shockwave-flash"
                 flashvars="zoomtype=3"
                 pluginspage="http://get.adobe.com/flashplayer/">
          </embed>
</object>
</body>
</html>
Y los errores que delphi detecta en ese código son y que no sé arreglar, estos:


¿Alguna sugerencia?
Gracias.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #8  
Antiguo 28-04-2014
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Yo probaría dos cosas. En primer lugar trataría de seguir usando "recursos" pero sin convertir el archivo PDF a SWF, sino tratando de embeberlo tal cual en el archivo HTML, de la siguiente manera:

Código:
<object width="400" height="500" type="application/pdf" data="/my_pdf.pdf" id="pdf_content">
 <p>Insert your error message here, if the PDF cannot be displayed.</p>
</object>
Trata de añadir algún "doctype" al archivo HTML, quizás el propio de HTML 5 (<!DOCTYPE html>) u otro, puesto que a veces añadir un "doctype" soluciona no pocos problemas y cosas "raras".

La segunda solución es un poco más compleja, pero, no imposible, y, si no funciona la primera, tal vez no te quede más remedio. Se trata de utilizar "Asynchronous Pluggable Protocols", para lo que encontrarás lo necesario ya hecho en Delphi, por ejemplo, como se muestra en este artículo.

No recuerdo si en el artículo enlazado se usa cierto componente desarrollado hace años por un tal R.A. Hornstra, pero, este es el componente que yo uso en mi proyecto HTML Compiler. Claro que todo esto también dependería un poco de lo que quieres conseguir, y, me explico.

Si sólo quieres mostrar el archivo PDF en un objeto "WebBrowser" pero te da igual distribuirlo junto a tu aplicación, entonces, probablemente, lo mejor sea que te olvides de los archivos de recursos y uses archivos locales sin más, es decir, archivos que se encuentran como tales al lado de tu aplicación y no como archivos de recursos. Seguramente el protocolo "file" es más permisivo que el protocolo "res".

Si esto último no es posible, es decir, si tu intención es ocultar el archivo PDF, entonces deberías seguir intentando mediante recursos (aunque tal vez alguien podría acceder a dicho PDF y extraerlo) o bien tratar de usar el "Pluggable Protocol" de marras, que, si bien acaso no sea cien por cien seguro, desde luego es otra forma de hacerlo.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 28-04-2014 a las 12:31:00.
Responder Con Cita
  #9  
Antiguo 28-04-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Hola dec, si te soy sincero, aún no sé que método usar, por una parte, quiero evitar que se copie y/o modifique el pdf, con lo que convertirlo a swf, me viene de perlas, en este caso y dado que no encuentro la forma de meterlo en un .res y que se muestre el archivo swf de marras, lo que hice fue crear un sitio web dedicado a este archivo, con lo que la propia aplicación muestra en el webbrowser la pagina web que si tiene embebido el archivo swf.

Por otra parte, no sé si merece la pena hacer lo anterior y dejarlo mejor como archivo local, aunque en este caso, el usuario deberá tener instalado algun visor pdf mientras que en el otro metodo, bastaria con tener el reproductor de flash que seguramente esté instalado en el 99% de los pc, claro que también está el tema de si hay o no conexion a internet, aunque esto ultimo se controla facilmente.

Así que entre no querer que se copie/modifique el pdf y no saber si hacerlo local o desde internet, estoy liao. No veo que opción tiene mas pros y contras.

Saludos y gracias por tu interés.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #10  
Antiguo 28-04-2014
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Sí; es algo que tendrás que sopesar. Quizá la solución más sencilla podría sea la mejor. Por ejemplo, podrías distribuir tu aplicación junto a los archivos HTML y PDF ocultos o cifrados de alguna forma. Después podrías descifrarlos y extraerlos temporalmente en algún directorio, el mismo directorio temporal de Windows, por ejemplo. De este modo te beneficiarías de que el "WebBrowser" cargaría archivos "locales" sin más. Y, aunque tus archivos estarían "disponibles", tal vez no le sea sencillo a un usuario "normal" el hacerse con ellos. En cualquier caso tienes que ver qué te conviene más.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #11  
Antiguo 28-04-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Hola de nuevo Dec, de momento voy a probar con el swf, total mientras hago distintas pruebas espero llegar a una decisión.

Saludos.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
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
Extraer Archivo de los recursos odiseeus C++ Builder 1 29-10-2013 14:41:53
ayuda con archivo de recursos danielmj Varios 2 29-05-2012 21:50:18
PNG en archivo de recursos (.res) jandro Varios 10 27-01-2010 20:00:45
Archivo de recursos Esau Varios 3 04-11-2004 10:13:44
Crear un archivo de recursos soul6301 Varios 1 19-08-2004 20:24:07


La franja horaria es GMT +2. Ahora son las 19:50:48.


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