Lazbro - A Portable HTML Viewer for Lazarus
Lazbro is a simple HTML viewer for Lazarus. lazbro was written because I wasn't happy with the state of the TIpHTMLPanel control which comes with Lazarus, so as usual, if you don't like it, rewrite it.
Lazbro is still young, so it will take a few months for all the bugs to be ironed out. Most of the core features are written. For the inner design, I choose to align the HTML attributes directly to Lazarus control properties. Which means there are a number of HTML attributes which are not standard. In order to provide the best compatiblity with standard HTML, I convert a subset of standard HTML attributes to the internal custom attributes. This makes for a clean/tidy implementation while providing a lot of extra layout features to get around compatiblity restrictions.
Lazbro is still being developed, but the current version should be suitable for small to medium pages. Lazbro would currently suit basic HTML document reading, or dynamic FORM input for Lazarus programs.
Click here to download "Lazbro v0.4 Date:2nd October 2014"
Note: This download may not contain the latest code, as this project is still being developed.
There are some layout issues with more complex pages. This is pretty standard for HTML. I will fix the standard as I go. So far, I'm pretty happy with the results of the layout.
Text Selection - Text selection and clipboard copying will be in the next release.
HTTP Download - Currently only file access is implemented. HTTP downloading is simple to add, but that will be in the next release.
Advanced Styles - The color/font/background/border styles avalible are the ones which are in TPanel by default. I will be updating my flow panel at some stage to include more advanced styles which are avaliable in modern HTML.
CGI Download - The motivation for writing this component was because I wanted a server-free CGI control. I implemented a demo using TIpHtmlPanel, but the results were not to my likeing. Anyway, I still have the CGI code, which will be a standard feature for Lazbro.
DHTML - Dynamic HTML is not supported. ie: Modifing the THTMLDocument will not update the display. You may read from THTMLDocument. It is also not recommended to add your own controls to the browser control via coding. You can locate controls, and change their properties, or setup event notifications.
CSS Styles - The STYLE tag is currently not supported. Currently, I use custom tag attributes for styles, which are filled in via a compatiblity function. This allows me to keep the core browser code clean/simple, while implementing as many "HTML compatible" settings as possible. So, STYLE sheets can be implemented without messing with the core code. This will be done soon.
Advanced TABLE Support - The currently TABLE implementation is very simple. There is no colspan support, or sibling width checks. So, each row must be setup with its own sizes (eg: This like this table). I will add better support soon.