HTML Component Library is a cross-patform and 100% native HTML rendering library for Delphi that brings all the power of HTML/CSS into desktop and mobile Delphi applications.
Unlike other «HTML-like» libraries it is based on powerful HTML/CSS rendering core with full support of HTML 4.1 and CSS 3 (some of HTML 5 tags are also supported). Tables, shadows, transitions, animations, SVG images, tranforms and much more.
No DLL’s, no ActiveX, no third party libraries dependencies, only pure native Delphi code.
Library supports all Delphi versions from ancient Delphi 5 to Delphi 10.2 Tokyo. For Delphi XE4 - Delphi 10.2 Tokyo all FMX platforms are supported - Win32/64, OSX, Android, iOS and Linux.
Linux GUI is supported with FMXLinux library
Unicode (including Right-to-Left) is supported even for non-unicode Delphi 5 - 2007 using widestrings and TNT Unicode library.
Updates for new Delphi versions are released in one week (max) after Delphi release.
Library core contains:
- HTML parser with full support of HTML standard and ability to handle incorrect markup. It was tested on thousands of real-world emails so missed closed tags and incorrect tag order is not a problem. Also it is currently fastest native HTML parser for Delphi.
- XML Parser with XPath support.
- CSS parser with CSS 3 support.
- DOM classes with JQuery support.
- SVG rendering library.
- HTTP client with native implementation for Windows and OSX and https support.
- HTML rendering core.
- Set of rendering canvaces (GDI, GDI+, FMX, Android, iOS)
- Set of HTML-enabled VCL controls including Label, Panel, ListBox, ComboBox, Tabs, CheckBox, RadioButton, SpeedButton, PopupMenu, ComboListBox, Virtual Tree, CategoryButtons, BalloonHint.
- Powerful cross-platform scripting engine
HTML rendering class is separated from drawing class so you can choose between available drawing classes or write your own. Currently library contains GDI and GDI+ canvases for VCL, FMX canvas for FMX Win32/64, iOS, Android and OSX and also native Android and iOS canvas.
Library core is heavily optimized and extremely fast. Parsing speed is about 100Mb/s so parsing of typical 100Kb document takes only 1ms. Style and layout calculations takes additional 20ms for 100Kb document.
Using of native canvas on Android provides smooth scrolling and zoom similar to native Android applications (much better than FMX controls) and correct text rendering with full RTL support, kerning pairs and baseline alignment.
HTML Component Library, HTML Report Library, HTML Editor Library version 3.63 released.
- FMXLinux support for HCL, Editor and Reports http://fmxlinux.com/tlist.html
- DirectX canvas (VCL).
- Native iOS canvas
- Export to PDF on iOS
- New VCL controls - THtSpeedButton,THtPopupMenu, THtComboListBox.
- Print preview frame for Delphi 6 - 2010.
- Print preview frame for FMX.
- Background loading (each account is checked in a separate thread).
- Detection of main (body) part.
- SSL/StarTLS support.
- Automatic DB tables/triggers creation (current version has SQL scripts for Firebird and Oracle).
- Creation of email summary (annotation).
- Automatic creation of full text search index (for any SQL database).
- Documents in MS Word DOCX and RTF formats can be included in full text search index.
- Any internet library can be used for POP3/IMAP protocols (current version contains adapters for Indy, ICS and Synapse).
- Any DB access library can be used to store emails (current version include FireDAC adapter).
- Email library (included in bundle HEL+HRL)
- CSS content value: counter(pagecount)
- Page is ajusted by Footer and Header height (printing).
- New THtListBox properties: SelectedTextColor and SelectedBGColor.
- CSS border-radius supports two dimensions: border-radius: 10px / 5px;
- Removed 192px limit for THtComboBox height.
- Change tracking in HTML Editor.
- New editor options eoEmbedPastedStyles - include styles from pasted HTML into document styles. eoClearPastedFormatting - remove inline formatting from pasted HTML code.
- Support for +=, -=, *=, /= assignments.
- "in" operator supports enumerated objects (if s in L then ... where L is TStringList)
- "for in " has optional "index" variable: for s in L index k do ...
- Script Loop variable declaration: for var k:integer := 1 to 100 do
- Ternary operator: k := if a = 0 then 1 else 2;
- case operator in expressions: k := case t of 1:2; 1+1: 2+3; else 4 end;
- Binary numbers - %1110001