Difference between revisions of "THtmlPort"

From Lazarus wiki
Jump to navigationJump to search
(First draft)
 
m (THmlPort moved to THtmlPort: Typed it wrong!)
(No difference)

Revision as of 02:04, 9 November 2009

English (en) español (es)

About

THtmlPort is a Lazarus/Free Pascal version of Dave Baldwin's HTML Components, including THtmlViewer, TFrameViewer and TFrameBrowser. The original unported source is available from here:

 http://www.pbear.com/

Screenshot

framedem sample app on a MacBook using the carbon widgetset

Download

You can download the ported source using Subversion:

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

A zip file of the source is also available:

 http://web.fastermac.net/~MacPgmr/THtmlPort/

License

The original Delphi code on which this port is based has been released by Dave Baldwin into the public domain. Additional code supplied with this port is released under the MPL 1.1 license.

Installation

To install the HtmlComp package in Lazarus:

  • Choose Package | Open package file, then select htmlcomp.lpk (in the package subfolder).
  • Click Compile to compile the package.
  • Click Compile a second time. A quirk in the current Lazarus apparently make this extra compile necessary.
  • Click Install to rebuild and relaunch Lazarus.

To compile a sample app that uses the HtmlComp package:

  • Choose File | Open, then select framedem.lpi or htmldemo.lpi (both in the demo_src subfolder).
  • Choose Run | Run to compile and run the sample app.

To Do

carbon widgetset

Works well, but needs support for additional image file formats and special characters.

win32 widgetset

Unstable. While the framedem sample app works pretty well, you can see the problem with the THtmlViewer component on Windows when you select About - the About dialog comes up but then you can't close it. If you open Task Manager you'll see that the framedem app is using as much as 95% or more of CPU time. The same thing happens with the htmldemo sample app since it uses THtmlViewer directly. If you drop a THtmlViewer on a form in Lazarus you'll also see this problem - now Lazarus will be using all the CPU time.

It's not known if this problem is due to issues with the win32 widgetset code, the LCL code, or some assumption in Dave's Delphi code that does not work with Lazarus. If anyone can fix this or suggest a workaround, please communicate it to the THtmlPort maintainer at:

 MacPgmr (at) fastermac (dot) net

gtk2 widgetset

The framedem sample app displays some of the HTML, then crashes with a stack overflow exception. This is likely due to some endless loop within the GTK2 widgetset that is exhausting the stack. Again, if anyone has insights into this problem or comes up with a workaround, please contact the THtmlPort maintainer at the above e-mail address.