Jump to content

Alexander Sviridenkov

Members
  • Content Count

    258
  • Joined

  • Last visited

  • Days Won

    26

Everything posted by Alexander Sviridenkov

  1. Alexander Sviridenkov

    if I can see [Parsing...], IDE shuts down

    Lot of times in XE7, never in 10.3
  2. Alexander Sviridenkov

    HTML Library limited offer

    Like every year, today, in honor of my birthday, I give a 43% discount on 5 licenses (excluding renewal). Please use coupon code NOV202019 https://delphihtmlcomponents.com/order.html
  3. Alexander Sviridenkov

    HTML Library limited offer

    @Jacek Laskowskisorry, .DB was missed in zip, now fixed.
  4. Alexander Sviridenkov

    HTML Library limited offer

    @Kas Ob. thank you!
  5. Alexander Sviridenkov

    HTML Library limited offer

    @Rollo62, @Fred Ahrens, Thank you!
  6. Alexander Sviridenkov

    Right To Left Components

    @limelectdepends on platform, this will work on Windows and (probably) OSX but not on mibiles.
  7. Alexander Sviridenkov

    Right To Left Components

    @limelect AFAIK Hebrew doesn't have special connectors between letters so can be correctly rendered using separate symbols, but Arabic - can't.
  8. Alexander Sviridenkov

    Right To Left Components

    @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?
  9. Alexander Sviridenkov

    Right To Left Components

    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.
  10. Alexander Sviridenkov

    Right To Left Components

    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.
  11. Alexander Sviridenkov

    Right To Left Components

    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.
  12. Alexander Sviridenkov

    HTML Library 4.0 released

    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
  13. Alexander Sviridenkov

    HTML Library 4.0 released

    You should have already received automatic email I'll resend it now manually.
  14. Alexander Sviridenkov

    Context menu UI built with HTML and CSS only

    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">&#61643;</div>&nbsp;</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)...
  15. Alexander Sviridenkov

    Context menu UI built with HTML and CSS only

    Thank you, I will publish more examples after an upcoming release.
  16. Alexander Sviridenkov

    Context menu UI built with HTML and CSS only

    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.
  17. Alexander Sviridenkov

    Report components: good, bad, ugly

    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.
  18. Alexander Sviridenkov

    Payment - Monetization - Good international PSP

    I highly recommend PayProGlobal. All kind of payments, good support, good fraud checking.
  19. Alexander Sviridenkov

    Report components: good, bad, ugly

    HTML Report Library has scripting, DOM API, dynamic construction and unlimited interactivity.
  20. Alexander Sviridenkov

    formatting HTML code

    Currently library supports formatting only for XML or XHTML. HTML formatter is expected in next version.
  21. Alexander Sviridenkov

    Context sensitive code completion and syntax checking

    No, but I think about it.
  22. Alexander Sviridenkov

    Context sensitive code completion and syntax checking

    Will be available in next release.
  23. Alexander Sviridenkov

    Context sensitive code completion and syntax checking

    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).
  24. Alexander Sviridenkov

    Check string for cyrillic and other characters

    You can use unicode ranges https://jrgraphix.net/r/Unicode/
×