Jump to content

Alexander Sviridenkov

Members
  • Content Count

    258
  • Joined

  • Last visited

  • Days Won

    26

Everything posted by Alexander Sviridenkov

  1. Alexander Sviridenkov

    Need suggestion on developing a custom component

    @Rollo62 thank you. Supported CSS properties for last version are listed there https://delphihtmlcomponents.com/css3.html For any version this list can be obtained by calling THtDocument.SupportedCSSProperties function CSS grids are not supported, but flex is supported since 4.4
  2. Alexander Sviridenkov

    Need suggestion on developing a custom component

    @wuwuxin Yes, code is quite simple in Delphi: uses htfontawesome, htdefscriptadapter. HTML: <style> body {background: white} table {background: #eeeeff; border-collapse: collapse} td {padding: 5px} .value {border: solid #ddd 1px; background: white; resize: horizontal} input {border: solid transparent 1px} .left {width: 10px; padding-top: 5px} .hidden {display: none} </style> <script type="passcript"> procedure Expand(Section); begin $('#'+Section).toggleClass('hidden'); this.toggleClass('fa-minus'); this.toggleClass('fa-plus'); end; </script> <table width="500"> <tr> <td class="left" ><i onclick="expand('1')" class="fas fa-minus"></i></td> <td class="title" colspan="2">ID Settings</td> </tr> <tr id="1"> <td class="left"></td> <td class="value" width="200">Name</td> <td class="value"><input type="text" value="Bill Smith"/></td> </tr> <tr id="1"> <td class="left"></td> <td class="value">Address</td> <td class="value"><input type="text" value=""/></td> </tr> <tr id="1"> <td class="left"></td> <td class="value">Birthday</td> <td class="value"><input type="date" value="01.01.1998"/></td> </tr> <tr> <td class="left" ><i onclick="expand('2')" class="fas fa-minus"></i></td> <td class="title" colspan="2">Marketing Settings</td> </tr> <tr id="2"> <td class="left"></td> <td class="value">Email</td> <td class="value"><input type="text" value="bill@gmail.com"/></td> </tr> <tr id="2"> <td class="left"></td> <td class="value">FrequentBuyer</td> <td class="value"><input type="checkbox"/></td> </tr> </table>
  3. Alexander Sviridenkov

    Need suggestion on developing a custom component

    @Dany Marmur Thank you.
  4. Alexander Sviridenkov

    Need suggestion on developing a custom component

    @Kas Ob.Thank you. 1. Currently editor supports CSS content-editable property which enables/disables editing for any element. 2. There is CSS pointer-events property for disabling mouse events for any element. What else events you think should be added to HtPanel? 3. Library supports regsitering custom element cllasses. Class for any tag (f.e. img) can be registered using HtRegisterElementClass, this is f.e. how SVG is implemented HtRegisterElementClass('svg', TSVGElement); HtRegisterElementClass('g', TSVGGElement); etc.
  5. Alexander Sviridenkov

    Need suggestion on developing a custom component

    Please check download section https://delphihtmlcomponents.com/download.html there are compiled samples, especially https://delphihtmlcomponents.com/hcldemo.zip https://delphihtmlcomponents.com/dbreports.zip https://delphihtmlcomponents.com/csstransforms.zip Sample above is very simple, demos contains much more complex examples.
  6. Alexander Sviridenkov

    Need suggestion on developing a custom component

    Here is updated sample <style> body {padding: 20px} td {height: 20px; resize: horizontal; } .gauge1 {background: linear-gradient(to bottom, steelblue, blue);} .gauge2 {background: linear-gradient(to bottom, lightgreen, green);} #main > tbody > tr > td:first-child {border-right: solid red 2px} </style> <table width="800" id="main"> <tr> <td width="50%"> <table width="100%"> <tr> <td class="gauge1" width="70%"></td> <td class="gauge2"></td> </tr> </table> </td> <td> <table width="100%"> <tr> <td class="gauge1" width="70%"></td> <td class="gauge2"><div style="position:relative; left:calc(100%+10)">Row 1 name</div></td> </tr> </table> </td> </tr> <tr> <td> <table width="100%"> <tr> <td class="gauge1" width="70%"></td> <td class="gauge2"></td> </tr> </table> </td> <td> <table width="100%"> <tr> <td class="gauge1" width="70%"></td> <td class="gauge2"><div style="position:relative; left:calc(100%+10)">Row 2 name</div></td> </tr> </table> </td> </tr> </table>
  7. Alexander Sviridenkov

    Need suggestion on developing a custom component

    I've sent you library update with new event OnShowResizeHint. Please override this method to hide hint or draw custom hint.
  8. Alexander Sviridenkov

    Need suggestion on developing a custom component

    1. Resize hint is fixed. Any element can have normal hint (using title attribute or HTML hint using data--hint attribute, see HCL main demo) but on mouse hover. 2, Vertical bar within table can be added by setting border-right for first cells of outer table, larger bar can be added as absoulte positioned element 3. Row name behind table right border can be added as relatively positioned text for last cells
  9. Alexander Sviridenkov

    Need suggestion on developing a custom component

    Yes, f.e. you can give ID to each cell and use something like Caption := FormatFloat('0.0', HtPanel1.Doc.GetElementbyId('cell1').InnerWidth) Also HtPanel has event OnElementResizeEnd where Sender is sized element.
  10. Alexander Sviridenkov

    Need suggestion on developing a custom component

    Zero lines of Delphi code, just one HtPanel: (artefacts on video are from GIF compression) HTML: <style> body {padding: 20px} td {height: 20px; resize: horizontal} .gauge1 {background: linear-gradient(to bottom, steelblue, blue);} .gauge2 {background: linear-gradient(to bottom, lightgreen, green);} </style> <table width="800"> <tr> <td width="50%"> <table width="100%"> <tr> <td class="gauge1" width="70%"></td> <td class="gauge2"></td> </tr> </table> </td> <td> <table width="100%"> <tr> <td class="gauge1" width="70%"></td> <td class="gauge2"></td> </tr> </table> </td> </tr> <tr> <td> <table width="100%"> <tr> <td class="gauge1" width="70%"></td> <td class="gauge2"></td> </tr> </table> </td> <td> <table width="100%"> <tr> <td class="gauge1" width="70%"></td> <td class="gauge2"></td> </tr> </table> </td> </tr> </table>
  11. Alexander Sviridenkov

    SSL certificate for VCL Application Exe

    No. Even EV sertificate.
  12. Alexander Sviridenkov

    ANN: HTML Library 4.4 released

    What's new: 1. Flex support. Supported properties: display: flex flex-direction justify-content align-items align-self flex-basis flex-grow flex-shrink flex-wrap flex 2. CSS letter-spacing support for FMX/Windows canvas. 3. FontAwesome is upgraded to version 5.6. 4. CSS only-of-type pseudoclass sypport. 5. CSS clip-path support. 6. CSS break-after support. 7. Custom fonts support for FMX canvas (Windows and Linux). 8. Faster shadows in DX and FMX canvaces. 9. Faster text rendering on FMX/Windows canvas. 10. Smooth scolling of FMX Panel/Editor. 11. New global canvas class selector: HtUIDefaultCanvasClass: used by UI controls (Checkbox, Radio, Button, Listbox, etc.). By default is set to GDI. 12. HTML rendering (THtDocument.Draw) can now be used in threads. Use second parameter in constructor. 13. Added workaround for bug in VMWare v.16 which leads to blue screen when using DX canvas. 14. Faster rendering on DX canvas. 15. FMX.HtPanel.ScreenshotMode property for faster UI transitions. 16. Improved text rendering on GDI canvas. 17. HtMetafile class for all platforms with ability to save/load from stream/file. 18. Support for WOFF fonts (when using Office library). What is HTML Library: the only 100% native and cross-platform (all FMX platforms) HTML/CSS/SVG/MathML rendering library for all Delphi versions (5 - 10.4) and Lazarus. WYSIWYG HTML Editor with embedded toolbars, spellchecking and DOCX/RTF import / PDF export, powerful reporting engine with embedded SVG charts and QR codes, visual Math Equation editor, FastReport and ReportBuilder integration, Pascal scripting engine with debugger, SQL transformation/validation/translation and DB schema framework, Email sending/receiving framework and much more. Library is used by thousands of Delphi developers on all Delphi versions (from 5) and platforms. https://delphihtmlcomponents.com/
  13. Alexander Sviridenkov

    Bug in Android32 compiler

    Dangerous bug in 10.4.2 / Android32 compiler (not sure about 64). a, b : single a is unitialized (= -nan in debugger), b = some value, f.e. 100.5; if a <> b then <code>, <code> is not executed. ASM code: if fValue <> aValue then C5CCAD8C ED9D1A02 vldr s2, [sp, #8] C5CCAD90 EEF70AC1 vcvt.f64.f32 d16, s2 C5CCAD94 ED901A00 vldr s2, [r0] C5CCAD98 EEF71AC1 vcvt.f64.f32 d17, s2 C5CCAD9C EEF41BE0 vcmpe.f64 d17, d16 C5CCADA0 EEF1FA10 vmrs APSR_nzcv, fpscr C5CCADA4 9001 str r0, [sp, #4] C5CCADA6 ED8D0A00 vstr s0, [sp] C5CCADAA D027 beq.n 0xc5ccadfc <Htmlcss.TMeasure.SetValue(float)+124> C5CCADAC D626 bvs.n 0xc5ccadfc <Htmlcss.TMeasure.SetValue(float)+124> C5CCADAE E7FF b.n 0xc5ccadb0 <Htmlcss.TMeasure.SetValue(float)+48>
  14. Alexander Sviridenkov

    UI created with HTML Library

    Video made for Delphi Showcase. Both, desktop application and server software (for cloud access) are made in Delphi, nothing external except OCR dll. Windows, Mac and Linux versions. All UI is created in HtPanels (HTML Library), document conversion is performed by Office library. Support for custom fonts and letter spacing was added to FMX canvas (currently only for windows), without this PDF documents cannot be rendered properly. https://www.youtube.com/watch?v=PdudQwjhCJg
  15. Alexander Sviridenkov

    Visual Control for selecting a date range

    @Attila Kovacs thak you. There is also Calendar sample application in /Sample Projects/ folder.
  16. Alexander Sviridenkov

    Linux: wrong enum size

    Looks like there is bug in 10.3 Linux compiler: maximum enum size is limited to 8 bytes. F.e. type TMyEnum = (a1, a2, ..a100); TMyEnums = set of TMyEnum; var X: TMyEnums; sizeof(X) returns 8 on Linux platform.
  17. Alexander Sviridenkov

    Linux: wrong enum size

    How mininum enume size may affect this case? This test enum is larger than maximum setting for "Minimum enum size" parameter.
  18. Alexander Sviridenkov

    Linux: wrong enum size

    Another test: if e191 in LargeEnumSet then Writeln('YES'); No YES in output.
  19. Alexander Sviridenkov

    Linux: wrong enum size

    Output is the same, but in debugger Evaluate/Modify window Sizeof(LargeEnumSet) shows 8. Sizeof(LargeEnumSet) is calculated at compile time, in asm code there is explicit $19
  20. Alexander Sviridenkov

    HTML Library review and sale: 25% off.

    New review from Jon Aasenden: https://jonlennartaasenden.wordpress.com/2020/11/25/htmlcomponents-for-delphi-a-closer-look/ HTML Library and Office Library sale: 25% discount on all delphihtmlcomponents.com products until end of the month. Please use coupon code BF2020
  21. Alexander Sviridenkov

    HTML Library review and sale: 25% off.

    @dummzeuch full source code is included for all licenses / products. Also it includes one year of support and all updates (major/minor).
  22. Alexander Sviridenkov

    Limited delphihtmlcomponent.com sale

    Only once in a year: any delphihtmlcomponents.com product with 44% discount (5 licenses available). Please use coupon code HB2020.
  23. Alexander Sviridenkov

    converting this TidBytes code To Tbytes

    TBytes and TIdBytes are binary compatible, both are just "array of byte".
  24. Alexander Sviridenkov

    ANN: HTML Office Library

    One more bridge between desktop and web: HTML Office Library. The first Delphi library for reading all office formats (+ PDF) and convert them to plain HTML on the fly. Converted document contains only plain HTML/CSS/SVG and can be displayed using HTML Component Library or browser. Library provides a uniform access to an entire document and its parts, document resources (fonts, images, etc) and properties (title, Table of Contents, etc). The library doesn't depend on any external components (DLLs, OLE, ActiveX, etc) and is cross-platform. Fully written in Delphi and comes with full source code. Following document formats are supported: Rich Text Format (RTF) MS Word 6-2007 binary format (DOC) MS Word XML document (DOCX) MS Power Point binary format (PPT) MS Power Point XML format (PPTX) MS Excel binary format (XLS) MS Excel XML format (XLSX) Adobe PDF format (PDF) Supercalc format (SXC) EPUB (electronic books). Besides the document conversion classes it also contains the following: EMF/WMF to SVG conversion TTF to WOFF conversion TTF normalization TTF to SVG conversion CFF to TTF conversion Adobe PostScript to TTF conversion. Supported Delphi versions are Delphi XE2 - Delphi 10.4.1. Supported platforms: Windows 32/64 VCL and FMX, MacOS, Linux. There are two compiled demos available https://delphihtmlcomponents.com/FileBrowser.zip 1. Simple document viewer: allows to view any document on hard drive using file tree on left side and HtPanel on right. To view final HTML press View in browser button. No installation required. 2. Document Indexer: create full text search index for documents located in selected folders and find any document from application or Web. No installation required. How to use: Run application (OfficeIndex.exe). Click Add folder and select folder containing office documents. Click Start indexing, wait until it completed. Search for documents using one of the following: a) Go to Search tab and enter search query (any words). b) Click Web interface and enter search query. c) Point mobile phone camera (mobile should be connected to the same router) to QR code and open mobile interface. Full cource code of both applications are included in library. Documentation in PDF format: https://delphihtmlcomponents.com/HTML Office Library.pdf Documentation in CHM format: https://delphihtmlcomponents.com/HTML Office Library.chm Purchase link (currently only Site License): https://store.payproglobal.com/checkout?products[1][id]=61655 There is 50% discount valid until end of October: please use coupon code HOLX
  25. Alexander Sviridenkov

    ANN: HTML Office Library

    Thank you. I'll think about this.
×