

Alexander Sviridenkov
-
Content Count
281 -
Joined
-
Last visited
-
Days Won
28
Posts posted by Alexander Sviridenkov
-
-
Please use coupon code BF2024.
Valid until end of November.
-
1
-
-
New video - 3D in WebUI
-
2
-
-
On 11/15/2024 at 1:14 AM, Ivan Rakyta said:Hi Alexander,
do you have a sample for THtListView?
Regards
Ivan
Currently no, but will be added soon.
-
New video - WebUI Grids: display modes and column types - Markdown, RTF, documents, nested frames
-
1
-
-
New video - Maps in WebUI
-
1
-
-
-
Demo is updated with Postgres client libraries and better error handling.
-
3 minutes ago, Kryvich said:Is WebUI optimized for mobile devices, or just for devices with large screens (computers)?
Currently there is only desktop layout, but since UI is stored in an intermediate representation, there will be no need for modifications when mobile templates will be added.
-
8 minutes ago, Rollo62 said:This is pretty much overwhelming.
I'm afraid there is already a point here where users are shocked by the functionality and need a gentle way to climb the learning curve.In my opinion, it is always best to have many examples covering different levels of difficulty to understand the whole concept behind it piece-by-piece.
If there is a clear usage concept behind it, how could you explain it in the docs, maybe step by step?Maybe a user needs a mix of Delphi and HTML/JS knowledge to understand most of it, how can these lessons be broken down into small, digestible chunks?
You can get first working application with almost zero coding. Simply load demo project, enter your database credentials (or leave sample database) and press button to generate UI. Application is ready.
Now start browser, switch do design mode (F2) and use designers to adjust tables, tabs, etc as shown in video. Each designer has help ? button in caption which leads to manual.
Typical workflow is described there https://delphihtmlcomponents.com/webui/typical-workflow.html
1. Build UI with default settings.
2. Check created UI and make TWebUIBuilder descendant with overridden rules.
3. Create UI using your TWebUIBuilder descendant and analyze it.
4. Repeat steps 2, 3 until you get an acceptable result.
5. Use WebUI designers for final polishing.
Also there are Server and UI sections which itself are samples, you can open any table or action (button) designer and see how it works.
More samples and tutorials will definitely be added later. -
WebUI - new LowCode Web framework for Delphi.
See https://youtu.be/XCmvz2DPN4Y
Documentation: https://delphihtmlcomponents.com/webui/
Sample project: https://delphihtmlcomponents.com/webui.zip
How to use
1. Extract files from zip.
2. Run nw.exe (requires Administrator because uses http.sys web server)
3. Enter your DB connection details or leave demo DB
4. Press Create UI
5. After UI is created press Start server and open http://localhost:8080 in browser.
CoreNew THtListView component (VCL/FMX) - display data in listview-like layout with full HTML support.
THtDocument.AsBitmap method - convert document to bitmap.
New printing parameter - PrintAsBitmap. Useful when printing white text over black/colored background.
TElement.AddCSSRecursive(const CSS: string; UpdateStyleAttr: boolean = false) - set property for element and its descendants.
SVG: support for switch element.
THtXMLNode.JSON method - save to JSON
THtXMLNode.XML property - set node inner XML.
THtJSONSerializer class - serialize objects and records into JSON.
Templates: support for conditional sections:
{{@name}}..{{/name}} - name is not empty
{{@!name}}..{{/name}} - name is empty
Templates: class functions for rendering and JSON support (result is encoded as JSON):
RenderTemplate(const ATemplate: hstring; AContext: THtXMLNode; JSONMode: boolean = false): string;
RenderTemplate(const ATemplate: hstring; AContext: TStrings; JSONMode: boolean = false): string;
Templates: ThreadSafeRender methods - can be called simultaneously from different threads.
New VCL and FMX unit htprinters / fmx.htprinters - manage printer setting - set custom paper size, list available paper sizes, etc.
New unit htboxes - calculate optimal layout of boxes on pallets and inside container. See PalletCalc demo.Scripter
x64: support for var parameters in methods
Support for calling interface methods
Write and Writenl functions - output to debug console.
New HTMLtoText(const s: string) function.
Console.log/warn/error messages without debugger are sent to system log (OutputDebugString).Editor
Improved Markdown conversion (better lists support)
ReportsBarcode element - new type: auto - select barcode type depending on data length and symbols.
SQL
TSQLSelectStatement - new methods
AddTable
AddJoinedTable
Advanced CreateQueryforTable method.
Improved support for limits in different dialects
TSQLContext:
JSONMode property.
new AddSelectQuery method.
PROGRESSBAR SQL function.
TSQLParam.ValuefromString method.
New TDMField properties:
property ContentType: string;
property MaxDataLength: integer;
property UniqueValuesCount: integer;
property UniqueValuesPercent: single;
property UniqueValues: string;
New TDMTable method: FillContentTypes - analyze table data and fill field properties.
New TDMTable method GetReferencedTabler - return tables that reference this table in FK.
New TDMTable properties:
property RecordCount: integer;
property TableType: string;
New TDMQQuery methods
function AsRowData(Limit: integer = 0; LowerCase: boolean = false): THtXMLNode - serialize to XML
function AsJSON(Limit: integer = 0): string - serialize to JSON
function InsertXML(const Table: string; Fields: THtXMLNode; Schema: TDMSchema; ReturnKey: boolean = false): TDMQuery;
- insert to table using parameters from XML attributes.
function UpdateXML(const Table: string; Fields: THtXMLNode; Schema: TDMSchema): TDMQuery
- update table using parameters from XML attributes.
procedure ToXML(ANode: THtXMLNode) - serialize to XML
function ExecWX(Params: THtXMLNode; const ASQL: string): TDMQuery - execute query using parameters from XML attributes.
New method TDMVirtualSchema.RegisterQuery(const SQL, TableName: string; const TableDescription: string = '')
- register SQL statement as virtual table.
TDMDictionary class - abstract class for application dictionaries.
Implementations:
TDMSQLDictionary
TDMStringDictionary
TDMJSONDictionary
TDMDictionaryManager - application dictionary manager class.
TDMVirtualQuery class - class for performing SQL queries on virtual databases.Office
Faster snippet extraction.
Support for DOCX embedded fonts.
Improved rendering quality for PDF, XLSX, RTF, Outlook, DOC and DOCX formats.
Better search in code files (PAS, C, etc.).
Support for referenced images (cid:) in Outlook messages.-
7
-
2
-
-
SQL framework from HTML Library Bundle can execute SQL queries on JSON, XML, Datasets, Lists, arrays, lists of objects, CSV files, etc.
-
8 hours ago, Remy Lebeau said:The style attribute on the <img> element is formatted correctly:
<img src="data:image/png;base64,..." style="height:150px; width:125px" />
Multiple CSS styles in a single "style" attribute ARE supposed to be separated by semicolons.
There are two attached messages. In MyMail there is style attribute but no width/height attributes. Outlook does not handle image size in style attribute correctly, it requires explicit width/height.
In MyTest2-2 there are width/height attributes but incorrectly separated by semicolon.
-
Image attributes are not correct
h1XZgdBrJ2IOlrmq1SofeBwIdLyQHgGPgEfAIzCICNgIw6YHUZdhkvl//UZHbn5keAcAAAAASUVORK5CYII=";
height="144px"; width="120px"; /></div>There should be no ; between attributes
-
Try to use width/height attrubutes instead of CSS.
-
2 hours ago, Rollo62 said:Ok, but still unclear if this can be used as internal "server" too, especially on mobile.
As described above, the apps will act as a real embedded HTTP web server, right?
This will make little sense for any mobile app, perhaps.
But in any app on any platform, to have just a "local" server, that doesn't conflict with firewalls, permissions, etc.,
and which is just responsible for the UI part, that will make a lot of sense.
This will enable an easy way to separate the UI from the business logic, IMHO.
So can it be used that way, or is it even intended for that purpose?Yes, it can. Library itself is not tied up to any web server, just need 20-30 lines of code to pass request and get response.
-
1
-
-
15 hours ago, corneliusdavid said:It looks like this is similar to Elevate Web Builder. I think TMS has a product that does this also.
Are you targeting a different or lower-cost market or is there something specific about this I missed that is really unique?
Main differences:
1. In WebUI you do not work with simple control like Label, Edit, Combo, etc., only with high level entities. F.e. "I want to have a filter on toolbar for this field".
2. Library is not tied to certain JS/CSSlibraries, you can define how it will render UI by changing templates.3. UI is designed in browser and is stored in DB. Therefore:
a) You can have different UI on each customer/site using one compiled application. And easily copy/paste forms between sites.
b) Changes are more simple. Standard way: Customer request, f.e. add new column to grid - Open application in IDE, find form, find dataset, change query, find grid, add column, compile, test, send back to customer.
WebIUI - press F2 in browser, open designer, change SQL, add column, press Apply.
4. Very powerful grid/listview. Easy to define cell content, color, background, format, etc.
5. Lot of built-in features (with UI created using WebUI itself) - localization with automatic translation, session management, forms management, SQL and pages profiling, server monitoring, etc.
6. Embedded access rights management. All entities are linked to dataclasses and UI is displayed with respect to current user role (f.e. Delete button will be hidded if role has no delete rights for this class).
7. SQL, JS, Scripts editors with completion and hints.
8. Some parts are created automatically basing on DB schema and content anylysis. You can download demo, enter you database details and get working application in 1-5 minutes.
9. Easy integration with Delphi, Register you class in WebUI and you will be able to call any of its methods from scripts.
-
1
-
-
On 8/7/2024 at 6:43 PM, Rollo62 said:I roughly get the point of this, by peeking through the docs.
Opens a few questions:
Does this work also locally, standalone, meaning that one App contains a kindof internal service, together with a TWebBrowser in the same app?
So that there is no real server is used, only perhaps internal communications with the TWebBrowser component.
Other question, if this could work as above on Android and iOS too?
Perhaps the answer to 1.) and 2.) is "No", which would explain why 2.) is not available for mobile platforms yet.
Is this part of the HtmlComponents package and already available for testing, by using the current download link again?
Currently it supports only desktop platforms, but in future can work on mobiles too.
-
WebUI demo is available:
http://delphihtmlcomponents.com/webui.zip
1. Extract files from zip.
2. Run nw.exe (requires Administrator because uses http.sys web server)
3. Enter your DB connection details or leave demo DB
4. Press Create UI
5. After UI is created press Start server and open http://localhost:8080 in browser.
Documentation
-
2
-
-
-
1 hour ago, #ifdef said:Need to create a simple app for KaiOS (like WhatsApp has already done) — is it possible to do this in Delphi with WebUI? I don't know web at all 😞
WebUI works in browser, it doesn't depend on OS.
-
13 hours ago, Ian Branch said:Hi Team,
I am after a good Flowchart application to 'flowchart' my Delphi units.
I see there are several out there.
Interested in recommendations from Delphi Users.
Regards & TIA,
Ian
http://delphihtmlcomponents.com/graph.zip
https://en.delphipraxis.net/topic/10229-unit-dependency-viwer/
-
Memo and html
in FMX
9 minutes ago, xorpas said:Hellow
How can Make memo support html that show readable text ?
-
1
-
-
6 minutes ago, JonRobertson said:You have a couple of "bundles". Do you mean the three library bundle?
I'm curious as a potential customer.
Yes, it will be available for free for customers with active subscription (at release date) on Bundle mentioned above (HTML Component Library + HTML Editor Library + HTML Report Library)
-
2
-
-
Small example of using custom HTML/JS inside Report control.
JS code send pallet and boxes params to Server (Delphi), receive calculated pallet loading and display it.
-
3
-
TListView - manually adding items faster at runtime
in VCL
Posted
Use virtual mode (OwnerData)
https://docwiki.embarcadero.com/Libraries/Sydney/en/Vcl.ComCtrls.TListView.OwnerData