Jump to content

Alexander Sviridenkov

Members
  • Content Count

    153
  • Joined

  • Last visited

  • Days Won

    15

Alexander Sviridenkov last won the day on April 29

Alexander Sviridenkov had the most liked content!

Community Reputation

210 Excellent

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Just found serious bug in 10.4.2 when compiling to Win64 target: int64 value returned by function is truncated to 32 bit. In XE11 the same code works OK. F.e. this will lead to errors when working with files/streams larger that 2 Gb.
  2. Use Base64 encoding (SOAP.EncdDcd unit)
  3. Alexander Sviridenkov

    Working with Delphi and Excel

    HTML Office Library can read (and display) all office formats (XLS, XLSX, XLSB, DOC, DOCX, PPT, PPTX) and also PDF, EPUB, FB2, HTML, MD (markdown), EML, MSG (Outlook), WMF, EMF. All platforms, only plain Delphi code.
  4. Alexander Sviridenkov

    TIP for Creating PDF Files from HTML / Image

    Thanks, I didn't know Edge supports header/footer customization. Are header/footer embedded into page or passed separately? Does it support different headers/footers for different pages?
  5. Alexander Sviridenkov

    TIP for Creating PDF Files from HTML / Image

    Browsers do not support page headers and footers, different page sizes/orientation, printing page number and count of pages, repeated table headers, etc.
  6. Alexander Sviridenkov

    HTML Parser alternative to MSHTML?

    Sorry, I forgot to mention that when using chaining, current node should be passed to XPath as parameter to prevent XPath walking up toi root. var D: THtmlNode; N, A: THtNode; begin D := THtmlNode.Create; try D.Parse('<body><h1 id="header1"<a href="a1">First</a><a href="a2">Second</a></h1><h2><div><a href="a3">Third</a></div></h2></body>'); for N in D.XPath('//h1[@id="header1"]') do for A in N.XPath('//a', false, N) do ShowMessage(A['href']); for N in D.XPath('//h2') do for A in N.XPath('//a', false, N) do ShowMessage(A['href']); finally D.Free end; Second parameter is "stop after first found node", third is current root node.
  7. Alexander Sviridenkov

    HTML Parser alternative to MSHTML?

    Only when using THtDocument. With THtmlNode and THtmlStyledNode works without canvas units uses htmlpars; var D: THtmlNode; N: THtNode; begin D := THtmlNode.Create; try D.Parse('<body><div id="1"><ul><a href="a1">First</a><a href="a2">Second</a></ul></div><div><ul><a href="a3">Third</a></ul></div></body>'); for N in D.XPath('//div[@id="1"]/ul/a') do ShowMessage(N['href']); finally D.Free end;
  8. Alexander Sviridenkov

    HTML Parser alternative to MSHTML?

    HCL is layered, HTML and CSS parsers has no dependencies on framework or OS. Class hierarchy is THtNode (htmlpars unit, only RTL) -> THtXMLNode (htxml unit, only RTL) | THtmlNode (htmlpars unit, only RTL) | TStyledHTMLNode (htmlcss unit, only RTL) | TElement (htmldraw unit) | THtDocument (htmldraw unit) THtDocument/TElement use VCL/FMX units for several reasons 1. Native controls in HTML page (edits, combos, etc.) . 2. VCL themes (theme colors support) 3. VCL/FMX canvas (THtDocument can draw on VCL/FMX canvas) But all graphics (canvas classes) is isolated.
  9. Alexander Sviridenkov

    HTML Parser alternative to MSHTML?

    Parser itself do not depend on canvas, VCL or something else. You can use THtmlNode class (hmlpars unit, code is almost the same: D := THtmlNode.Create;D.Parse(..)) THtmlNode supports XPath. For JQuery please use TStyledHTMLNode (htmlcss unit). Both XPath and JQuery can be called from any node so chaining is possible.
  10. Alexander Sviridenkov

    HTML Parser alternative to MSHTML?

    In this case canvas doesn't matter.
  11. Alexander Sviridenkov

    HTML Parser alternative to MSHTML?

    Sample uses htmldraw, htmlpars; .. var D: THtDocument; N: THtNode; begin D := THtDocument.Create; try D.Parse('<body><div id="1"><ul><a href="a1">First</a><a href="a2">Second</a></ul></div><div><ul><a href="a3:>Third</a></ul></div></body>'); for N in D.JQuery('div#1 ul a') do ShowMessage(N['href']); for N in D.XPath('//div[@id="1"]/ul/a') do ShowMessage(N['href']); finally D.Free end;
  12. Alexander Sviridenkov

    HTML Parser alternative to MSHTML?

    Why ypu don't you parser from HTML Component Library? AFAIR you own a license. Parser supports XPath and JQuery so searching for particular nodes is quite simple.
  13. Alexander Sviridenkov

    For gui information

    HTML Component Library can be used to create exacly the same UI.
  14. Alexander Sviridenkov

    HTML Library Sale

    20% discount on delphihtmlcomponents.com products. Please use coupon code NY2022 (valid until end of the year). This is the last chance to order HTML Library at the current price. Prices will be increased in January, but renewal price (including a 15% discount increased by 5% every year) will remain the same for customers with continued subscription. https://delphihtmlcomponents.com/order.html
  15. Alexander Sviridenkov

    Pos

    In recent Delphi there is s.SpltString() which returns array of string.
×