THtmlPort/es

From Lazarus wiki
Jump to navigationJump to search

English (en) español (es)

En breve

   THtmlPort es la versión Lazarus/Free Pascal de los componentes HTML de Dave Baldwin, incluye THtmlViewer, TFrameViewer y TFrameBrowser. El código adaptado mantiene la compatibilidad completa con Delphi.

   El código original no adaptado (versión 9.45) se encuentra aquí:

 http://www.pbear.com/

Pantallazos

Ejemplo de FrameDem usando la interfaz Carbon
Ejemplo de FrameDem usando la interfaz Win32
Ejemplo de FrameDem usando la interfaz GTK2

Descarga

   Puedes descargar el código fuente adaptado usando Subversion:

 svn co https://lazarus-ccr.svn.sourceforge.net/svnroot/lazarus-ccr/components/thtmlport [directorio_local_destino]

   También hay disponible un archivo zip:

 http://web.me.com/macpgmr/THtmlPort/

Licencia

   El código original Delphi en que está basada esta adaptación fue liberado por Dave Balwin como de Dominio Público. El código adicional añadido con esta adaptación se distribuye bajo la licencia MPL 1.1.

Instalación

   Para instalar el paquete HtmlComp en Lazarus:

  • Seleccionar Paquete | Abrir archivo de paquete (-lpk)..., y marcar htmlcomp.lpk (en el directorio package).
  • Pulsar Compilar para compilar el paquete.
  • Pulsar Compilar una segunda vez. Una peculiaridad de la FPC actual parece que requiere esta compilación extra.
  • Pulsar Instalar para reconstruir el IDE y relanzar Lazarus.

   Para compilar una aplicación de ejemplo que utiliza componentes del paquete HtmlComp:

  • Seleccionar Archivo | Abrir, ahora busacr y marcar framedem.lpi o htmldemo.lpi (ambos en el directorio demo_src).
  • Seleccionar Ejecutar | Ejecutar (o F9) para compilar y lanzar las aplicaciones de ejemplo.

Estado

Interfaz Carbon

   Estable pero necesita soporte para formatos de imágenes adicionales y caracteres especiales. Las dos aplicaciones de ejemplo FrameDem y HtmlDemo funcionan.

   Funciona con la versión estable de Lazarus 0.9.28.2, pero para mejores resultados en el diseño de formularios hay que usar la versión 0.9.29.

Interfaz Win32

   La apariencia es casi idéntica a la de Delphi, pero no está libre del todo de problemas. Si bien la aplicación de ejemplo FrameDem funciona bastante bien, la aplicación HtmlDem produce una excepción en el arranque carga pero no se muestra el archivo HTML. Las dos aplicaciones de ejemplo FrameDem y HtmlDemo funcionan.

   Funciona con la versión estable de Lazarus 0.9.28.2, pero para mejores resultados en el diseño de formularios hay que usarla versión 0.9.29.

Interfaz GTK2

   Empieza a tener buena pinta, pero la aplicación de ejemplo FrameDem es propensa a fallar en diversos puntos. La aplicación HtmlDemo no muestra el archivo HTML cargado. Las dos aplicaciones de ejemplo FrameDem y HtmlDemo funcionan.

   Asegúrate de utilizar Lazarus 0.9.29 con esta interfaz. Aplica el parche del informe de error para mostrar mejor las imágenes (http://bugs.freepascal.org/view.php?id=18330)

Contacto

   Si tienes correcciones para los problemas del paquete, por favor, pónte en contacto con Phil:

 MacPgmr (at) fastermac (dot) net

Problemas conocidos

Interfaz Carbon

  • En la aplicación FrameDem, título y subtítulo en la parte de arriba(readme2.htm) aparece en Sans serif, aunque el estilo en demo.css especifica Times New Roman, que es una fuente de Mac.
  • En FrameDem, los caracteres WingDing characters (sample3.htm) no son correctos.
  • En FrameDem, los gráficos dentro del texto (sample3.htm) o de tablas (properties.htm no se muestran. Esto va acompañado de la emisión de muchos errores por la ventana de la consola por el código de la interfaz Carbon. ==> Resaltar que Carbon no dispone de ROP (ver), por lo que algunas imágenes muestran un aspecto tosco
  • La barra de desplazamiento vertical no se mueve hasta el final cuando la ventana se desplaza completamente.
  • In FrameDem, shelling to whatsnew.htm does not work since can't start second copy of app.
  • En FrameDem, la Vista previa en el cuadro de diálogo Imprimir da error de copias establecidas a 0. Cambiar copias a 1 permite la vista previa, pero no se ve mucho. En la aplicación HtmlDemo, la vista previa funciona bastante bien, aunque no se muestra tan bien como en la propia aplicación. Con las dos aplicaciones se cuelgan con la segunda vez que se intenta la Vista previa previsualiza todas las páginas, pero a partir de la 3ª están en blanco.

Interfaz Win32

  • El ejemplo HtmlDemo lanza una excepción al arrancar.
  • El ejemplo FrameDem falla en ocasiones al cargar samples3.htm tras pulsar el enlace 'HTML Samples'; otras veces carga bien.
  • En el ejemplo FrameDem, al pulsar el enlace 'What's new in Version 9.45' se inicia otra copia de la aplicación correctamente, pero no se muestra el archivo "whatsnew.htm". Ocurre lo mismo al iniciar FrameDem con un archivo distinto de "demo.htm" especificado en la línea de órdenes.
  • En el diseñador de Lazarus, al situar un THtmlViewer en un formulario muestra una barra de desplazamiento en la esquina superior izquierda del control. Al cambiar por ejemplo el BorderStyle del THtmlViewer desaparece la barra. Parece ser un fallo del diseñador de formularios (nota del traductor: este fallo no parece producirse con la versión 0.9.28 beta) .

Interfaz GTK2

  • El ejemplo HtmlDemo no funciona en absoluto.
  • El ejemplo FrameDem lanza excepciones en varios lugares (por ejemplo, al seguir el enlaceStylesheet Support). En el depurador, introducir "break gdk_x_error" y run backtrace following exception para ver donde se produce el error.¿¿¡¡!!??
  • Problemas con las fuentes en FrameDem. Esto puede ser debido a la imposibilidad de conciliar la fuente contra la fuente de Windows que se especifica en los archivos .css. Por ejemplo, no subrayando o tachando, el texto en la etiqueta <PRE> no tiene la sangría correctamente, el texto se ve demasiado grande en la ventana "Acerca de...", etc.
  • En FrameDem, los dos primeros caracteres WingDing (sample3.htm) no son correctos.
  • En FrameDem, File | Printer Setup provoca una excepción en /printers/unix/cupslcl.pas si se selecciona antes de pulsar en uno de los marcos. Pulsar en un marco habilita File | Print... y ahora el diálogo Imprimir se muestra correctamente, lo mismo para File | Printer Setup.
  • En las dos aplicaciones en el diálogo Fonts (Options | Default Font/Colors), la lista Font Name está vacía si HasX no está definido al compilar GTK2 (predefinido en OS X; sin HasX, EnumFontFamiliesEx no está implementado, por lo que Screen.Fonts es una lista vacía). Pero incluso si la lista contiene las fuentes (HasX definida), haciendo clic en uno de los espacios en blanco el ejemplo de HTML (LoadAgain ¿no?).
  • En FrameDem, pulsar en whatsnew.htm inicia otra copia de la aplicación y carga bien el archivo, pero no muestra ninguna barra de desplazamiento vertical, aunque al pulsar en la barra invisible se desplaza la ventana.

Todos los interfaces

  • En los ejemplos el diálogo de Fuentes (Options | Default Font/Colors), las áreas Font Color y Link Color aparecen vacias, ya que un TColorGrid se utiliza en las aplicaciones originales para Delphi. TColorGrid no es un control LCL y ha sido quitado de los archivos .lfm.
  • La Vista preliminar se ha deshabilitado ya que depende de TMetafile, que no forma parte de la LCL.
  • Copiar al portapapeles no funciona todavía funciona básicamente, pero únicamente la primera vez (reseñar además que GTK2 parece no soportar el formato text/html en el portapapeles).
  • De momento no soporta 64-bit. Ahora el paquete debe compilar, la instalación, compilación y ejecución de las aplicaciones de ejemplo ha funcionado con los compiladores de 64 bits en Win64 y Linux64 (CPU64).
  • No hay soporte para archivos de imagen PNG (excepto en Windows - el soporte está escrito para una DLL de Windows-).