Alexander Sviridenkov
Members-
Content Count
280 -
Joined
-
Last visited
-
Days Won
28
Everything posted by Alexander Sviridenkov
-
Report Builder + HTML Library + Office Library.
Alexander Sviridenkov replied to Alexander Sviridenkov's topic in Delphi Third-Party
Yes -
Reading SVG code from text file
Alexander Sviridenkov replied to misc_bb's topic in Algorithms, Data Structures and Class Design
When reading text file you should know (or determine) its encoding. -
AI experiences, GPT3 Leta series
Alexander Sviridenkov replied to Rollo62's topic in Algorithms, Data Structures and Class Design
In my country all mobile providers and banks use such AI, and all these AIs are so stupid that first thing that everyone do when calling is trying to force him to switch to human. Just another annoying thing like long voice menus. -
JFYI HTML Office Library (including HTML Component Library) adds 4.5Mb for all supported formats - PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX, SC, MD, HTML, MSG. Final exe size (when compiled in 11 release) is 6.7 Mb.
-
HTML Component Library, HTML Editor Library and HTML Report Library version 4.5 released. What's new: 1. RAD Studio 11 Alexandria support. 2. New THtMarkdownPanel component for displaying Markdown documents. 3. Improved Markdown support (tables, links, etc.) 4. Improved rending or large SVG images 5. Improved Flex support. 6. Improved handling of incorrect markup (tag order). 7. Added THtPanel.OnShowResizeHint event. 8. Added THtDocument.EmbedAllImages method for embedding images into document. 9. Added THtPanel.Script property for storing common scripts. 10. Added PrintScale parameter to Print method for scaling pages. 11. Added SplitBlocktoRoot method for splitting nested blocks (f.e. citation in emails). 12. Support for disablet attribute in inputs. 13. Added HighlightCheckedNodes property in THtVirtualXMLTree. 14. Improved scrolling of page with many input controls. 15. Added PNG encoding of pasted images for FMX. 16. New Editor event OnSurrogatePair. This event is called on second (low surrogate) char and when it returns true, default char processing is skipped. 17. SVG: added support for preserveAspectRatio with values none, meet and slice. 18. Faster rendering of large break-all blocks. 19. Support for type="number" in inputs. 20. Added Remove method to JQuery. 21. Addes support for attr!=value selector 22. Added support for summary and details elements. 23. DOCX to HTML conversion is now supported in Delphi 5 - 7. Fixed issues: https://delphihtmlcomponents.com/fixed45.html https://delphihtmlcomponents.com/
-
HTML Library 4.5 Released
Alexander Sviridenkov replied to Alexander Sviridenkov's topic in Delphi Third-Party
Please download now, trial is updated. -
HTML Library 4.5 Released
Alexander Sviridenkov replied to Alexander Sviridenkov's topic in Delphi Third-Party
Thank you, it was compiled with last 11 pre-release build, looks like it is incompatible with release build. -
HTML Library 4.5 Released
Alexander Sviridenkov replied to Alexander Sviridenkov's topic in Delphi Third-Party
Thank you for reporting, groupproj added. Do you get this error when using installer or when installing manually? -
ANN HTML Office Library 4.5 released & discount
Alexander Sviridenkov posted a topic in Delphi Third-Party
Whats's new 1. Improved performance for all document types. 2. Special TextMode mode for fast extracting of text content. 3. Outlook message format support (.MSG) 4. Markdown format support (.MD). 5. New RTF document parser. 6. HTML to DOCX conversion (basic implementation). 7. Improved EMF and WMF to SVG conversion. 8. Creation amd modification of DOCX files. 9. Text bit index classes for fast document search/indexing. 10. OpenType font class now supports creating text layouts, applying OpentType features and text measurement. 11. Improved font glyph to SVG conversion. 12. Support for XLSB format. 13. Support for old Delphi versions (from Delphi 7). 14. Support for mobile platforms. 15. Delphi 11 Alexandria support. What is Office Library: native cross-platform Delphi library for converting all MS Office formats to HTML and displaying it in your application or browser. No external dependencies, support for all Delphi versions from Delphi 7, native classes for work with OpenType fonts, special classes for creating full text search document indexes. Supported formats: 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) MS Excel XML binary format (XLSB) Adobe PDF format (PDF) Supercalc format (SXC) EPUB (electronic books). Markdown. Outlook Message (MSG) More details: https://delphihtmlcomponents.com/office.html Compiled demo applications (documentation is included): https://delphihtmlcomponents.com/FileBrowser.zip https://delphihtmlcomponents.com/FontBrowser.zip 30% discount on Office Library Site License is available until end of September. Please use coupon code OFFICE2021 -
Just made this for fun. Canvas for HTML library which uses no system text/font API. Everything is processed inside library. Fonts are loaded directly from TTF file/stream. Strings are converted into sequence of glyphs and transformed by various opentype features (kerming, glyph substitution/reposition, RTL, ligatures, etc.). After that glyphs are converted to graphics paths and rendered using D2D FillGeometry method. https://s9.gifyu.com/images/ownfont.gif
-
Custom text rendering
Alexander Sviridenkov replied to Alexander Sviridenkov's topic in Delphi Third-Party
Yes, font class can read and write TTF and WOFF, and also extract font of any format from PDF (CFF, PostScript, etc) and convert it to TTF (not simply wrap as CFF but convert outlines). Visual glyph editing can also be easily implemented using SVG. Please check http://delphihtmlcomponents.com/FontBrowser.zip compiled demo, it shows all capabilities - read, write, extract, and contains visual glyph editor (simple HtPanel). Only around 100 lines of code. BTW, font class can import glyphs from SVG path. This is part of Office library. -
New compiled demo showing font management capabilities of HTML Office Library. it can: Open TTF or WOFF font. Extract embedded fonts of any type from PDF file. Save extracted font as TTF or WOFF. Show font glyphs. Show glyph control points. Copy glyph as SVG. 100 lines of Delphi code. Everything is cross platform (Win, Mac, Linux, iOS, Android) https://delphihtmlcomponents.com/FontBrowser.zip
-
Screencast
-
HtmlComponents: Howto create a page (electronic paper), exactly filling A4 size ?
Alexander Sviridenkov replied to Rollo62's topic in Delphi Third-Party
This is my fault, code for image should be <img style="position:fixed;top:-100%; left:0px;" src="_INCLUDED_VIA_LINK_Briefbogen_Demo_Full.png" width="210mm" height="297mm"/> <img style="position:fixed;top:-100%; left:0px;" src="_INCLUDED_VIA_LINK_Briefbogen_Demo_Full.png" width="210mm" height="297mm"/> because 100vh is calculated from inner page size. Using this code image covers page exactly. flexbox is supported in 4.4, but for paged media tables have better support (spliting across pages). -
HtmlComponents: Howto create a page (electronic paper), exactly filling A4 size ?
Alexander Sviridenkov replied to Rollo62's topic in Delphi Third-Party
As I wrote previously, this can be solved by image in page header (position: running(heading)). Please use the following HTML: <!DOCTYPE html> <html> <style> .page {page-break-before: always} @page {size: A4 portrait; margin: 0px} </style> <body> ...document content... <div style="position: running(heading);height:70px"> <img style="position:fixed;top:-100%; left:0px;" src="_INCLUDED_VIA_LINK_Briefbogen_Demo_Full.png" width="100vw" height="100vh"/> </div> </body> </html> Result: -
HtmlComponents: Howto create a page (electronic paper), exactly filling A4 size ?
Alexander Sviridenkov replied to Rollo62's topic in Delphi Third-Party
Header and footer should be defined manually, library supports CSS position: running(heading/footer) Page background can be defined by image in header with fixed position and 100% width/height. To split document to pages add CSS page-break-before/after: always to any element. Finally call THtDocument.HTMLtoPDF -
Parsing Text search expression
Alexander Sviridenkov replied to Mike Torrettinni's topic in Algorithms, Data Structures and Class Design
It can. Just override GetDialect method (uses sqlparse) type TCustomExpression = class(TSQLExpression) private FDialect: TSQLDialect; public function GetDialect: TSQLDialect; override; destructor Destroy; override; end; destructor TCustomExpression.Destroy; begin FDialect.Free; inherited; end; function TCustomExpression.GetDialect: TSQLDialect; begin if FDialect = nil then FDialect := TSQLDialect.Create; Result := FDialect; end; procedure TForm67.Button1Click(Sender: TObject); var SE: TCustomExpression; begin SE := TCustomExpression.Create(nil); SE.ParseString('user=''john'' or user = ''peter'''); ShowMessage(SE.Node.Children[0].Children[1].Name); //=john end; Also there is pascal expression class in htscriptparse unit: var SE: TScriptExpression; begin SE := TScriptExpression.CreateAndParse('(user=''john'') or (user = ''peter'')'); SE.Variables['user'] := 'peter'; ShowMessage(SE.Calc) -
Usually schema changing occurs rarely enough (much less frequently that typing in query editor) so reloading changed part right after change should not affect performance.
-
>>This is exactly what I would like to do. Very nice! Are you parsing the whole SQL text with each keypress? Yes, but it works very fast. >>In my project the database schema is "loaded on demand" in a background thread. Queries/Scripts/Batchmove runs in that background thread. And I store the metadata also in that thread. That's why I need to get call the completion form when receiving the message. But taking into account that schema is loaded only once, is there reason to fill autocomplete asynchronously? You can start background loading when necessary and fill autocomplete only if schema is already loaded.
-
Maybe to use preloaded database schema? In this case completion can be filled synchronously with no significant delay.
-
Parsing Text search expression
Alexander Sviridenkov replied to Mike Torrettinni's topic in Algorithms, Data Structures and Class Design
HTML Library Bundle contains SQL framework with SQL parser for Firebird, Oracle, MySQL, Postgres, Microsof SQL, Elevate and SQLite. Library supports query parsing, formatting, translation between SQL dialects, modifying (change order, where, limit, fields, etc) syntax check and DB schema check, editor completion implementation and much more. https://delphihtmlcomponents.com/SQLLibrary.pdf -
Need suggestion on developing a custom component
Alexander Sviridenkov replied to wuwuxin's topic in VCL
@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 -
Need suggestion on developing a custom component
Alexander Sviridenkov replied to wuwuxin's topic in VCL
@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> -
Need suggestion on developing a custom component
Alexander Sviridenkov replied to wuwuxin's topic in VCL
@Dany Marmur Thank you. -
Need suggestion on developing a custom component
Alexander Sviridenkov replied to wuwuxin's topic in VCL
@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.