Jump to content

Alexander Sviridenkov

Members
  • Content Count

    258
  • Joined

  • Last visited

  • Days Won

    26

Posts posted by Alexander Sviridenkov


  1. @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>

     

    prop.gif

    • Like 3

  2. @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.

     


  3. 43 minutes ago, Mike Torrettinni said:

    This would be great sample to showcase on your website what can be done. Perhaps also adding some text into the grid.

    Those full screenshots from projects in Gallery look great, but , except in a few examples, it's not really clear what is your 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.


  4. 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>

     

    • Thanks 1

  5. 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


  6. 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>

     

    gauges.gif

    • Like 9

  7. 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.
     
    • Like 6

  8. 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>
    
    
    

     


  9. 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.
     

    SchreenLinux.png

    ScreenMac.png

    • Like 8

  10. 57 minutes ago, Kryvich said:

    Hi, Alexander. You create incredible software! They are rich in functionality, cost money and they deserve it. But perhaps you would consider creating a simplified HTML component with basic functionality only for Community Edition users, to use in free and open source projects?

    Thank you. I'll think about this.

    • Like 2

  11. 9 minutes ago, Jacek Laskowski said:

    $4000? Really?

    Yes. Competitors price (not Delphi because there is no similar library for Delphi) is $15K-$50K Developing somethign similar yourself will cost at least $100K.

    So $2k (with discount) for site license is quite low price.

×