Alexander Sviridenkov
Members-
Content Count
280 -
Joined
-
Last visited
-
Days Won
28
Everything posted by Alexander Sviridenkov
-
HTML Library limited offer
Alexander Sviridenkov replied to Alexander Sviridenkov's topic in Delphi Third-Party
@Rollo62, @Fred Ahrens, Thank you! -
@limelectdepends on platform, this will work on Windows and (probably) OSX but not on mibiles.
-
@limelect AFAIK Hebrew doesn't have special connectors between letters so can be correctly rendered using separate symbols, but Arabic - can't.
-
@limelect try to display the following text in Android Student: How do you write "What's your name?" in Arabic? Teacher: ما اسمك؟ Student: Thanks. Teacher: That's written "شكرًا". Teacher: Do you know how to write "Please"? Student: "من فضلك", right?
-
OK, several samples. FMX form with HtPanel on left and standard memo on right. Windows, standard FMX canvas: Here kerning pairs are correct on both sides and arabic letters are connected as it should and have correct order because FMX canvas use windows Direct2D layout for rendering. But word order in sentense with mixed english/arabic text is incorrect on right side and correct on left, because in HtPanel text is prepared by internal BiDi processor. Android, standard FMX canvas: On mobile platforms FMX output each letter as single bitmap. So kerning pairs are not processed and arabic letters are not connected. Word and letter order is correct on left side because of internal BiDi processor, but still no kerning and letter connectors. Android, native Android canvas: Kerning and letter connectors are correct. There is also another issue with FMX canvas ion mobiles. Here is the same form with scaling set to 10x for both components. FMX use bitmap scaling instead of preparing bitmaps for each font size. This leads to visual artefacts and blurred text.
-
Depends on selected canvas, For iOS, Android and OSX there are both native and FMX canvases. RTL is supported internally, library has own BIDI processor because even on native canvases each word is rendered separately, so layout should be prepared before passing to renderer.
-
FMX use different methods for text rendering on mobile and desktop platforms. On desktop platforms native OS methods are used (f.e. Direct2D text layout or CGContext) but on mobile platforms text is rendered as bitmap combination - each font symbol is stored in cache as bitmap. This leads to no RTL support, bad kerning, etc and also is slow., This is why I had to write native canvas support for these platforms.
-
What's new New editor features video: https://www.youtube.com/watch?v=3bzLyFwmdM4 HCL/Core Much faster drawing, style calculation and text selection, especially for very large documents New THtDocument.FormattedHTML method. Improved CSS animations support. Improved lines/borders rendering on HDPI screens and scaled documents. Improved text rendering on GDI+ canvas. Added SourceURL to HTML clipboard header Added THtDocument.SavetoStreamANSIEncoded. Workaround for Windows/OSX bug with double quote symbol in Times/italic fonts. Infinite support for CSS animations All image lists now changed to TCustomImageList to support VirtualImageList. New THtDocument.ConvertAttributestoStyle method for converting HTML attributes into inline CSS style. Added CSS text-decoration-style property Added CSS cursor: help Added SVG stroke-linejoin and stroke-linecap support. Incorrect font size values are now ignored Added column width parameter to InsertCol Improved quirks/normal mode support Editor Much faster text selection, caret positioning and text input New customizable selection toolbar (popup) for both VCL and FMX Improved RTF import Improved print preview window scrolling and zoom Added Active=false mode for fast editing of very large documents (1000+ pages) Better support for pasting HTML from clipboard in non-unicode Delphi Added RTF pasting from clipboard when HTML is not available. Added OnPrepareImage param to DocXtoHTML and RTFStringtoHTML Added support for WMF-JPEG conversion on RTF/DOCX import for Delphi 7-2009 New OnURLDetected event - fired when URL is detected in document. New eoEnterSoftBreak option for swapping Enter and Shift+Enter behavior. Improved Outlook compatibility. New eoHighlightCurrentBlock and eoShowSelectionToolbar options. Reports Added startangle parameter for pie charts Added direction="cw/ccw" parameter for pie charts Reports: added x-order attribute for arranging x-values in stacked charts. Email Email library now available for all platforms. Added SelectFolder method for selecting IMAP folders. Scripter Added FreeandNil procedure Calling Free() for object variable will clear variable. Script: added record helpers from IOUtils unit: TDirectory, TFile, TPath. SQL SELECT INTO support. New TSQLInsertQuery, TSQLUpdateQuery classes. DECODE column now returns correct data type based on values. WITH .. AS support for Oracle dialect. Support for PIVOT operator Added HasFetchLimit and FetchLimit functions. Support for ElevateDB SQL dialect New ConvertWheretoJoins method https://delphihtmlcomponents.com
-
HTML Library 4.0 released
Alexander Sviridenkov replied to Alexander Sviridenkov's topic in Delphi Third-Party
You should have already received automatic email I'll resend it now manually. -
Context menu UI built with HTML and CSS only
Alexander Sviridenkov posted a topic in Delphi Third-Party
Code for each item is relatively simple. For example list type selector consists of two classes, first for drop down panel: THtEditContextList = class(THtEditContextItem) public function Render: string; override; end; function THtEditContextList.Render: string; procedure Add(const ListType, ListTag: string); begin Result := Result + Format('<div class="eclistbox fade" listtype="%s"><%s style="list-style-type: %s"><li>———</li><li>———</li><li>———</li></ol></div>', [ListType, ListTag, ListType]); end; begin Result := ''; Add('none', 'ul'); Add('circle', 'ul'); Add('disc', 'ul'); Add('square', 'ul'); Add('decimal', 'ol'); Add('lower-alpha', 'ol'); Add('lower-roman', 'ol'); Add('upper-alpha', 'ol'); Add('upper-roman', 'ol'); end; And second for the button: THtEditContextListStyle = class(THtEditContextLiveItem) public function Render: string; override; procedure OnSubmenuElementEnter(Sender: TElement); override; procedure OnSubmenuClick(const Sender: TElement; Button: TMouseButton; Shift: TShiftState); override; end; procedure THtEditContextListStyle.OnSubmenuClick(const Sender: TElement; Button: TMouseButton; Shift: TShiftState); begin OnSubmenuElementEnter(Sender); end; procedure THtEditContextListStyle.OnSubmenuElementEnter(Sender: TElement); begin if Sender['listtype'] <> '' then begin if Sender.NodebyName('ol') <> nil then Editor.SetListStyle('ol', Sender['listtype']) else Editor.SetListStyle('ul', Sender['listtype']); Editor.Repaint; end; end; function THtEditContextListStyle.Render: string; begin id := 'list'; Result := '<div id="list" class="ecbutton down fade"><div class="faicon"></div> </div>'; FSubmenuClass := THtEditContextList; FDefaultSubmenuWidth := 300; end; Code for building menu: ContextPanel.Add(THtEditContexBold).Add(THtEditContextItalic).Add(THtEditContextUnderline). Add(THtEditContexStrike).Add(THtEditContexSpace).Add(THtEditContextTextColor).Add(THtEditContextBGColor). Add(THtEditContextFontSize).Add(THtEditContextFont). Add(THtEditContexLineBreak).Add(THtEditContexAlignLeft).Add(THtEditContexAlignCenter).Add(THtEditContexAlignRight).Add(THtEditContexAlignFull)... -
Context menu UI built with HTML and CSS only
Alexander Sviridenkov replied to Alexander Sviridenkov's topic in Delphi Third-Party
Thank you, I will publish more examples after an upcoming release. -
Context menu UI built with HTML and CSS only
Alexander Sviridenkov replied to Alexander Sviridenkov's topic in Delphi Third-Party
Class hierarchy is independend from VCL/FMX menus. Thereby menus are cross platform and HDPI ready. You can add any own item classes, but they shoud return HTML to render in menu and follow some rules. -
Report components: good, bad, ugly
Alexander Sviridenkov replied to Bill Meyer's topic in Delphi Third-Party
HTML Report Library produce plain HTML which can be edited using WYSWYG HTML Editor. Unlike some other report engines, elements are in normal flow (absolute positioning can be used but is not required), so editing will not break document layout. -
Payment - Monetization - Good international PSP
Alexander Sviridenkov replied to Clément's topic in I made this
I highly recommend PayProGlobal. All kind of payments, good support, good fraud checking. -
Report components: good, bad, ugly
Alexander Sviridenkov replied to Bill Meyer's topic in Delphi Third-Party
HTML Report Library has scripting, DOM API, dynamic construction and unlimited interactivity. -
formatting HTML code
Alexander Sviridenkov replied to David Schwartz's topic in Network, Cloud and Web
Currently library supports formatting only for XML or XHTML. HTML formatter is expected in next version. -
Context sensitive code completion and syntax checking
Alexander Sviridenkov posted a topic in Delphi Third-Party
-
Context sensitive code completion and syntax checking
Alexander Sviridenkov replied to Alexander Sviridenkov's topic in Delphi Third-Party
No, but I think about it. -
Context sensitive code completion and syntax checking
Alexander Sviridenkov replied to Alexander Sviridenkov's topic in Delphi Third-Party
Will be available in next release. -
Context sensitive code completion and syntax checking
Alexander Sviridenkov replied to Alexander Sviridenkov's topic in Delphi Third-Party
Yes, this is part of HTML Library bundle. Code editor combines Scripter and SQL framework to make code completion works for both pascal and SQL code in one window. Also this demo shows ability to add design time method checking for classes in scripter (in this case checker is added to TXQuery class and checks that parameters in SQL query corresponds to parameter array). -
Check string for cyrillic and other characters
Alexander Sviridenkov replied to chkaufmann's topic in RTL and Delphi Object Pascal
You can use unicode ranges https://jrgraphix.net/r/Unicode/ -
What's new HCL/Core Added support for TVirtualImageList Improved rendeing of images and text (align to pixel) HtPanel: added AllowScaling property. SVG: added support for "use" element. Added support for external SVG images Improved RTL support Automatic detection of RTL blocks Virtual image source for image lists on other forms, f.e. src="_forms/DataModule1/ImageList2/5" Improved emoji symbols support for VCL and FMX. Improved resize hint Added TCSSStyleSheet.GetAllClasses/GetAllIds Improved SVG rendering Added OnElementEnter/Exit event for HtPanel Added THtDocument.LoadfromStream Added THtDocument.ElementsFromPoint method returning all elements located at specified point. Empty attributes with no value now preserves their format Added support for ForeignObject tag which allows use of HTML blocks inside SVG. FMX: improved text baseline calculation Scripter: added support for list of values in case statement: case a of 1,2,3: Editor Fast Report component with visual editor and page split support (included in bundle). https://www.youtube.com/watch?v=DNAK_KR8fB0 https://delphihtmlcomponents.com/fastreport2.gif Added TDBHTMLEditor.UseOuterHTML property Added TDBHTMLEditor.NewDocumentTemplate Editor:Column widths are not preserved when copy/paste part of a table SQL Optimized schema loading queries for Oracle. Added TSQLSelectQuery.ChangeRowLimit class function. Added TSQLSelectQuery.AddJoin function https://delphihtmlcomponents.com
-
HTML Library & Fast Report
Alexander Sviridenkov replied to Alexander Sviridenkov's topic in Delphi Third-Party
Splitted bands (displaying long HTML) Video -
HTML Library & Fast Report
Alexander Sviridenkov replied to Alexander Sviridenkov's topic in Delphi Third-Party
frxHTMLView will be included into the bundle https://delphihtmlcomponents.com/