Administrators Farshad Mohajeri Posted March 13 Administrators Posted March 13 Roadmap for uniGUI Version 2.0 (Q2-Q4 2026) We are pleased to announce the roadmap for uniGUI version 2.0. uniGUI 2.0 is a long-awaited milestone release primarily focused on stability, refinement, and overall quality improvements across the framework. While it may introduce several minor enhancements and new features, it will intentionally not include major new features. This decision is deliberate. Over the past several releases, uniGUI has introduced a substantial number of major new capabilities. The time has now come to consolidate these additions, refine their implementation, and ensure they are robust, well-integrated, and production-ready. A key focus of this cycle will be addressing developer feedback, resolving edge cases, and improving overall reliability so that developers can fully leverage these features in their daily development workflows. Additionally, many of the major features originally planned for uniGUI 2.0 were already delivered incrementally in versions 1.90.0 through 1.95.0. As a result, the focus of version 2.0 will be to perfect and stabilize these capabilities rather than introduce entirely new ones. For instance, our new and fully automated installer was originally planned for version 2.0, but it was introduced earlier as a part of version 1.95.0. In short, uniGUI 2.0 is about maturity, stability, and polishing the platform. Planned Improvements for uniGUI 2.0 1. Migration to Ext JS 8.0 uniGUI will migrate to the upcoming Ext JS 8.0 release as soon as it becomes available. This migration will include support for new features and enhancements introduced in Ext JS 8.0, ensuring that uniGUI continues to stay aligned with the latest developments in the Ext JS ecosystem. Some of the new Ext JS 8.0 features announced by Sencha include: Responsive Digital Signature Pad QR Code Reader and Generator Font Awesome 7 support uniGUI will introduce corresponding support for these new capabilities, enabling developers to seamlessly integrate them into their uniGUI applications. 2. Completion of Ext JS Property and Feature Coverage We will review both existing and newly introduced Ext JS component properties and ensure that all missing capabilities are exposed in their uniGUI counterparts. This task also covers updating/upgrading 3rd party JavaScript libraries to the latest versions for components which rely on these libraries such as SweetAlert and PDF.js. The goal is to provide complete access to Ext JS functionality directly through uniGUI components. 3. New uniGUI Components Based on Recent Ext JS Components Where appropriate, we will evaluate the possibility of introducing new uniGUI components based on components added in recent versions of Ext JS. This will allow uniGUI developers to benefit from new UI capabilities available in the Ext JS framework. 4. Linux64 Platform Improvements The Linux64 platform will receive multiple improvements aimed at stability, functionality, and performance. Planned improvements include: Integration with the FMXLinux package to enable complete canvas operations for uniGUI Canvas, which currently lacks certain capabilities. Improvements to HyperServer for Linux, including replacing shell-based calls with native Linux implementations to improve performance and scalability. Additional bug fixes and platform refinements. Named Pipe transport channels for Linux. 5. Exploring Ext JS Responsive UI Abilities and Integration with uniGUI We will explore deeper integration of Ext JS responsive features within uniGUI to improve support for adaptive and responsive user interfaces. 6. HyperGrid Enhancements Several improvements are planned for HyperGrid, focusing on usability, functionality, documentation, and performance. Although this component has been available for some time, some developers may not yet be able to fully benefit from its capabilities. This is mainly due to the lack of comprehensive documentation, practical examples, and real-world usage scenarios. As part of this effort, we plan to improve documentation, examples, and usage guides to help developers better understand and take full advantage of HyperGrid in their applications. 7. Documentation & Example Improvements The uniGUI documentation will be expanded and improved to better support both new and experienced developers. This effort will include: Adding missing entries to the uniGUI Component Reference Completing documentation for existing components and properties Clarifying ambiguous descriptions and improving overall documentation accuracy and usability Creating more examples and demos, especially new demos for C++ Builder The goal is to provide a more complete, clear, and developer-friendly documentation experience. Also there will be more examples in form of small projects to clearly demonstrate how real world tasks can be easily handled by uniGUI applications. 8. New “How-To” Guides A series of practical “How-To” guides will be created covering key uniGUI features and development scenarios. These guides will help developers adopt best practices and better understand the framework’s capabilities. 9. Exploration of Native TLS 1.3 Support We will evaluate the possibility of adding native TLS 1.3 support for the embedded web server using available third-party libraries. 10. Rich HTML Content Integration We are planning long-awaited improvements that will allow rich HTML content to be embedded within various uniGUI components, including: Panels Grids ComboBoxes Dropdown lists Other UI elements This will enable developers to create more flexible and visually rich user interfaces within uniGUI applications. All of this will be implemented in a smart and consistent way — the uniGUI way. 11. Mobile Component Improvements (Modern toolkit) We plan to further enhance mobile components to improve their usability and overall developer experience. Special focus will be placed on mobile Grid components, which will continue to evolve with additional features and improvements. We will also explore the possibility of introducing custom theme support for the mobile framework. At present, mobile themes are limited to those provided by the Ext JS Modern Toolkit. Enabling custom themes would allow developers to create fully customized mobile interfaces, giving them greater flexibility in branding and UI design. 12. Framework Core Improvements This area includes various core bug fixes, internal optimizations, and general performance improvements across the framework. We also plan to review the AJAX handling mechanism and introduce improvements for more efficient handling of AJAX requests and timeout conditions, helping to improve the overall stability and responsiveness of uniGUI applications. Another task is to change library file names and make them fully compatible with Delphi library naming principles. Unfortunately, this was overlooked at early days, but now it must be resolved and it is especially important for C++ Builder projects. In short, uniGUI18 will be renamed to uniGUI180 and so on. Conclusion With uniGUI 2.0, our primary goal is to further strengthen the framework’s stability, maturity, and overall quality while continuing to enhance the development experience for Delphi developers. By refining existing capabilities, improving platform support, and expanding documentation, we aim to make uniGUI an even more reliable and productive platform for building modern web applications with RAD Studio. 1 8 4
Freeman35 Posted March 27 Posted March 27 It could be a structure like github. (I give github as an example for clarity) Only members can participate in this. What bugs are there? What is suggested? Members only know their own reports, their status is not clear. If it is on github, all members can develop the codes. If there is a bug, a member can find it and fix it. It would be a very detailed help, especially if everyone added a sentence regarding help. Members can see what has been done, what has not been done and/or what will be done. Can argue on the subject. What Farşad is right about is that there does not need to be a radical change just because the major version went from 1 to 2. After all, it's number one. But we are somewhat right; if the major version number changes in the software, a significant change is expected. My suggestion is to use dates instead of numbers. The purpose of the version is to be able to follow the change. It doesn't matter whether it's a number or a letter. Only the order is important. My expectations for Version 2. When I make a Delphi vcl design, I can see its rendered status in HTML. In HTML design IDE. This may be possible. All sample projects should be reviewed, faulty and missing ones should be revised, and detailed explanations should be provided. Since there are so many sample projects, it will be easier to find them if they are grouped under folder(s) named Component according to their content.
radekc Posted March 27 Posted March 27 Clarify Source Code of missing pas, for me I am worried about status project, if in case something happens.. I like unigui and used and wrote some article about it, but now I considering webstencils + AI generation, partially because of fear of licence change from Sencha and imposible AI development with unigui.
Tokay Posted March 27 Posted March 27 We are still waiting for different issues: https://forums.unigui.com/index.php?/topic/40769-does-it-possible-immediately-automatically-remove-all-such-sessions/#comment-178178 https://forums.unigui.com/index.php?/topic/22580-unifileupload-files-uploaded-solved/#comment-170177 https://forums.unigui.com/index.php?/topic/14416-servermessages/#comment-166089 https://forums.unigui.com/index.php?/topic/33930-error-synchronous-xhr-in-page-dismissal-occured-in-some-cases-found-and-fix-the-issue/#comment-164145 https://forums.unigui.com/index.php?/topic/20672-found-bug-in-ubuntu-theme/#comment-164025 https://forums.unigui.com/index.php?/topic/22461-unicanvasloadfromstream-does-not-work-on-the-linux/#comment-164024 https://forums.unigui.com/index.php?/topic/8599-drag-on-drop-treeview/page/2/#comment-164021 https://forums.unigui.com/index.php?/topic/23447-use-after-free-error-in-procedure-tunimenuitemdelete-found/#comment-164016 https://forums.unigui.com/index.php?/topic/24071-bug-in-terminating-procedure/#comment-164015 https://forums.unigui.com/index.php?/topic/25390-tuniimage-from-stream-in-linux/#comment-147875 https://forums.unigui.com/index.php?/topic/2052-how-to-modify-the-unidbnavigator-hint-content/#comment-141923
Stemon63 Posted March 27 Posted March 27 3 hours ago, radekc said: Clarify Source Code of missing pas, for me I am worried about status project, if in case something happens.. I like unigui and used and wrote some article about it, but now I considering webstencils + AI generation, partially because of fear of licence change from Sencha and imposible AI development with unigui. Who says you can't develop Unigui with AI? I'm getting excellent results, completing my client-oriented components and custom responsiveness management. All using AI. 1
eduardosuruagy Posted March 27 Posted March 27 1 hour ago, Stemon63 said: Quem disse que não é possível desenvolver Unigui com IA? Estou obtendo excelentes resultados, concluindo meus componentes voltados para o cliente e gerenciamento de responsividade personalizado. Tudo usando IA. I liked the idea, are you going to sell these components?
Fred Montier Posted March 30 Posted March 30 On 3/27/2026 at 9:21 AM, Stemon63 said: Who says you can't develop Unigui with AI? I'm getting excellent results, completing my client-oriented components and custom responsiveness management. All using AI. 1000% right ! and my Little tips... Ext.js was always the chains holding back uniGUI. But we got now at a position where you can get the best of both worlds: uniGUI at Backend and AI creating the Frontend, faster than human and more efficient. Don't be fooled: no programming tool can make app working perfectly in Backend, Frontend, DB Support and "Responsive" at the same time. And that if you can afford it. Believe me... none ! YOU NEED PEOPLE to make a good frontend UI and this type of people, that really understands the fullstack are above 40 or older. YOU WON'T FIND IT/THEM CHEAP ! But now you can be that person. And the Websocket support in uniGUI is really gold ! Such a Pity, people don't appreciate and still talking on "responsive" ui controls with DB support in 2026 ! Wake up ! in 3-5 year you wont need a graph UI interface ! You wont even need Delphi. I made a uniGUI project where you can do a lot of stuff without the ext.js UI and let AI design the whole interface for you. Faster, cleaner and a lot of features you could just ask for. Like making multilang support. My goodness... such-a pain in the a%% ! And now, you just create a list of languages you want. The path is: UI done in AI, Data exchange in Json, binding easy with Firedac (Table/Json serialize) to your DB/Updates and final product superior than Ext.JS UI. Of course, you have to know a little bit of HTML, JS and CSS to make the right requests and corrections and don't go unsure of tokens/cash. A little tease: I made a complete standalone uniGUI with suport to ISAPI, PHP and WinCGI with JSon handling and many nice features. So, I "ASK" for my desired UI, and only worried about performance. Put together very heavy elements that with unigui/ExtJS is to slow to perform to the enduser. Of course, is not for thousands of user, but is good enough for some hundreds lost souls. WinCGI yet a very nice feature, if you´re an old timer like me and amazing to integrate with "Horse" for lots of old projects I have, or simple console Delphi apps. PHP runs 70% of websites. It now opened a huge, ready to go integration. And, load an ISAPI directly in a uniGUI server, and create multidomain response ALSO directly in the uniGUI is way more pratical to deliver a new project. Since IIS has a lot with constrains with ISAPI Module, rights, user manager etc etc, it just speed up the process of creating new projects. In 3 months, made more progress than 3 years ! FYI: IIS still supports WinCGI ! And my project of videochat, was only possible due to Claude AI. No similar in Delphi and no need for VCL/FMX components... Of course, you got VCL components to make video chats: All bugged, expensive and the Windows apps solution path, is a deadend. Forget it ! Final words: ChatGPT don't get even close to Claude. Grok, urrrg. Gemini.. meeh. So, if you still worried about native responsive ui ... you´re about to get really outdated. TLDR; Go Claude ! and uniGUI dev team, forget Linux, Lazarus, HyperServer, PivotGrid and Ext.js. Make a light version with session handle (the strongest asset in uniGUI framework), keep websocket and go for it. Posted this in 2021 ! 2
Fred Montier Posted March 30 Posted March 30 uniGUI Session Management: Go try to do this in PHP or any JS framework (React, Angular etc... even in Python) and see the mess of libraries and stackoverflow code you need to put together. Intraweb is a joke !
Administrators Farshad Mohajeri Posted April 9 Author Administrators Posted April 9 Changes: Added a few more lines to sections 7 & 12. 1 1
LOGISTICASOFT Posted April 17 Posted April 17 Hice un proyecto uniGUI donde puedes hacer muchas cosas sin la interfaz ext.js y dejar que la IA diseñe toda la interfaz por ti. Más rápido, más limpio y con muchas funciones que podrías pedir. Como hacer soporte multilenguaje. Dios mío... ¡Qué dolor de cabeza! Y ahora, solo tienes que crear una lista de idiomas que quieres. COMO LO HIZO? GRACIAS
Sherzod Posted April 17 Posted April 17 1 hour ago, LOGISTICASOFT said: Hice un proyecto uniGUI donde puedes hacer muchas cosas sin la interfaz ext.js y dejar que la IA diseñe toda la interfaz por ti. Más rápido, más limpio y con muchas funciones que podrías pedir. Como hacer soporte multilenguaje. Dios mío... ¡Qué dolor de cabeza! Y ahora, solo tienes que crear una lista de idiomas que quieres. COMO LO HIZO? GRACIAS Antes luchábamos contra el código. Ahora le explicamos al código lo que queremos. El programador no desaparece — solo se convierte en el que hace las preguntas correctas. Before, we fought against the code. Now we explain to the code what we want. The programmer doesn't disappear — they simply become the one who asks the right questions. 🙂 1 1
LOGISTICASOFT Posted May 3 Posted May 3 hola de nuevo en su nuevo libro habla de: "Hice un proyecto uniGUI donde puedes hacer muchas cosas sin la interfaz ext.js y dejar que la IA diseñe toda la interfaz por ti. Más rápido, más limpio y con muchas funciones que podrías pedir. Como hacer soporte multilenguaje. Dios mío... ¡Qué dolor de cabeza! Y ahora, solo tienes que crear una lista de idiomas que quieres."
LOGISTICASOFT Posted May 12 Posted May 12 Posted May 3Posted May 3 hello again in your new book you explain about: "I did a uniGUI project where you can do many things without the ext.js interface and let the AI design the entire interface for you. Faster, cleaner, and with many features you could ask for. Like making multilingual support. My God... What a headache! And now, you only have to create a list of languages you want."
bahry Posted May 22 Posted May 22 On 5/12/2026 at 11:21 PM, LOGISTICASOFT said: Posted May 3Posted May 3 hello again in your new book you explain about: "I did a uniGUI project where you can do many things without the ext.js interface and let the AI design the entire interface for you. Faster, cleaner, and with many features you could ask for. Like making multilingual support. My God... What a headache! And now, you only have to create a list of languages you want." Hello, @LOGISTICASOFT Yes @Fred Montier what he said is true, just use an htmlframe and do what ever you want, I made a lot of screens with pure html/css/js 1 1
LOGISTICASOFT Posted May 23 Posted May 23 18 hours ago, bahry said: Hello, @LOGISTICASOFT Yes @Fred Montier what he said is true, just use an htmlframe and do what ever you want, I made a lot of screens with pure html/css/js Hello, thank you for your response. Can you share an example so that users can apply your valuable experience? Thank you. P.S.: Is pure HTML/CSS/JS an example that someone shared? 1
Stemon63 Posted May 26 Posted May 26 Template questions. Hi, I have to admit that Unigui is now a stable, powerful, and very productive product. But in truth, given its original startup nature, creating both VCL and web applications, it has always suffered from "belonging" to what we consider the VCL world and not the "web" world. All the hard work done by Farshad is effectively a huge effort to bring VCL to the web, and he has succeeded. But years pass, and "trends" and needs change. What I want to point out is that, in effect, Unigui is lacking in everything related to web technology outside of ExtJs. Lacking is not the right word; I would rather say "isolated" from the rest of the web world from a development standpoint. What am I asking for? I ask for the possibility of integrating Unigui with HTML Templates, but in the sense that we can assign Unigui components to HTML elements in the template, or render a grid in a div of the template's HTML page. By adding stateless calls, we could handle a multitude of situations where session management isn't necessary, significantly saving server resources. In practice, I visualize the possibility of using one of the HTML and JavaScript templates available on the web (portals, corporates, associations, websites, catalogs, etc.) and INSERT Unigui components into them, thus creating a true MERGE of the two worlds, with the option of using sessions (statefull) or asynchronous stateless calls. This is the case of a public web portal (entirely stateless) that then has a reserved area for customers (stateful sessions), but everything is built within Unigui, with the addition of templates. Am I asking too much? 🙂 It is logical that a whole series of unresolved and particular problems, such as RESPONSIVE, in these cases must be addressed in the template... 🙂
AlexM123 Posted May 26 Posted May 26 To Stemon63 as a template engine I use SynMustache + SuperObject / x-SuperObject. Also there are more libraries namely Sempare Template (scripting) Engine + TemplatePro from DMVC 1 1
LOGISTICASOFT Posted May 30 Posted May 30 On 5/22/2026 at 5:47 PM, bahry said: Hello, @LOGISTICASOFT Yes @Fred Montier what he said is true, just use an htmlframe and do what ever you want, I made a lot of screens with pure html/css/js Hello, thank you for your response. Can you share an example so that users can apply your valuable experience? Thank you. P.S.: Is pure HTML/CSS/JS an example that someone shared?
Stemon63 Posted June 1 Posted June 1 On 5/26/2026 at 1:21 PM, AlexM123 said: To Stemon63 as a template engine I use SynMustache + SuperObject / x-SuperObject. Also there are more libraries namely Sempare Template (scripting) Engine + TemplatePro from DMVC Hi Alex, thanks! Are there any screenshots or examples of what you managed to achieve, in terms of complexity? Thanks again.
AlexM123 Posted June 1 Posted June 1 I use libs just for report no js code. HTML file in UTF8 with BOM <table> <thead> <tr> <th colspan="2">Информация по счёту клиента (реализации)</th> </tr> </thead> <tbody> <tr> <td>Дата счёта</td> <td>{{INVOICE_DATE}}</td> </tr> <tr> <td>Номер счёта</td> <td>{{INVOICE_NUMBER}}</td> </tr> <tr> <td>Клиент:</td> <td>{{CLIENT_NAME}}</td> </tr> <tr> <td>Авиакомпания:</td> <td>{{AIRLINE_NAME}}</td> </tr> <tr> <td>Аэропорт (склад):</td> <td>{{SKLAD_1C}}</td> </tr> <tr> <td>Период рейсов:</td> <td>{{FROM_DATE}} - {{THRU_DATE}}</td> </tr> <tr> <td>Сумма счёта, {{PRICING_CURRENCY}}:</td> <td>{{PRICING_AMOUNT}} {{PRICING_CURRENCY}}</td> </tr> <tr> <td>Сумма счёта, {{SETTLEMENT_CURRENCY}}:</td> <td>{{SETTLEMENT_AMOUNT}} {{SETTLEMENT_CURRENCY}}</td> </tr> <tr> <td>Оплачиваемый объём(количество), {{INVOICED_VUOM}}:</td> <td>{{INVOICED_QUANTITY}} {{INVOICED_VUOM}}</td> </tr> </tbody> </table> In the code uses ... SynMustache, syncommons, FTemplateHolder.LoadFromFile(Lfn); // TStringLIst Lru := StringToUTF8(FTemplateHolder.Text); // Lru: RawUTF8; FTemplateMustache := TSynMustache.Parse(Lru); // TSynMustache function TModelRecalcOnPaymentDate.GetInvoiceInfo: string; var Ljo: ISuperObject; Lru: RawUTF8; Ldata: string; begin ljo := so; ljo.s['INVOICE_DATE'] := DateToStr(FInvoiceData.InvoiceDate); ljo.s['INVOICE_NUMBER'] := FInvoiceData.InvoiceNumber; ljo.s['CLIENT_NAME'] := FInvoiceData.ClientName; ljo.s['AIRLINE_NAME'] := FInvoiceData.AirlineName; ljo.s['SKLAD_1C'] := FInvoiceData.Sklad_1C; ljo.s['FROM_DATE'] := DateToStr(FInvoiceData.MinUpliftDate); ljo.s['THRU_DATE'] := DateToStr(FInvoiceData.MaxUpliftDate); ljo.s['PRICING_AMOUNT'] := floattostrf(FInvoiceData.PricingAmount, ffNumber, 15, 2); ljo.s['PRICING_CURRENCY'] := FInvoiceData.PricingCurrency; ljo.s['SETTLEMENT_AMOUNT'] := floattostrf(FInvoiceData.SettlementAmount, ffNumber, 15, 2); ljo.s['SETTLEMENT_CURRENCY'] := FInvoiceData.SettlementCurrency; ljo.s['INVOICED_QUANTITY'] := floattostrf(FInvoiceData.InvoicedQuantity, ffNumber, 15, 3); ljo.s['INVOICED_VUOM'] := FInvoiceData.InvoicedVUOM; ldata := Ljo.AsJSON(true); Lru := FTemplateMustache.RenderJSON(ldata); result := UTF8ToString(lru); end; In a frame there is a UniHtmlMemo. Then SetText 1 1
Recommended Posts