Wednesday, 02 July 2025 07:30

New installer has arrived!

We are glad to announce that the new generation of our uniGUI installer is eventually available. As you may already know, our original installer was a "semi-automatic" installer, meaning that developers were responsible to manually build uniGUI packages after installing uniGUI framework. While this method of installation served us well for many years, it is needless to say that it wasn't a pleasant experience to manually install uniGUI packages each time a new build was published. Considering the frequency that new builds are published (at least one new build per month), we were aware that at one point we must leave this legacy installer and switch to a completely new automatic installer. It is worth mentioning that with legacy installer the installation process was even more cumbersome and complicated for C++ Builder developers. Thanks to our new installer which also takes care of C++ Builder and installs the packages automatically for both Delphi and C++ Builder.

Upgrading the installer was in our roadmap for a long time. There were various options to create an automated installer. We went back and forth and evaluated various options for deployment. First option and probably the most popular one among component developers was to pre-build all uniGUI packages (mainly BPL files) and deploy them with the installer. This seems to be a straight-forward and a fail-safe strategy, but this method came with a huge drawback: size of the installer. We are supporting all Delphi editions starting with Delphi 2006 till the most recent versions. The installer should include all BPL files for all supported Delphi releases including 64-bit BPL files for RAD Studio XE2 and later. Required files were not limited to BPL files only. We also had to include other library files and header files such as DCP, BPI, HPP and related object files, not only for Win32 platform, but also for other supported platforms such as Win64 and the recently introduced Win64x (Modern) platform (and other platforms in the future).

We made a simple calculation and it revealed that if we choose to pack and deploy all of these files, the size of uniGUI installer would exceed several hundreds of MB (Probably 500 MB or more). Needless to say if we choose this path, size of our installer would continue to grow with each new release of Delphi. In order to reduce size of the installer to a reasonable amount it was required to create separate installers for each version of RAD Studio. While this could be a solution, this would considerably increase our archive size and further complicate our deployment process. So after considering all of such drawbacks we started to evaluate our second option.

Our second option was to continue deploying DCU files, PAS files and other resources as we did before, but creating required packages and other library files during the installation using Delphi command line compiler (DCC32 or DCC64). This option was much more complicated to implement for us, but had several advantages. This option would allow us to create one installer for all Delphi versions and still keep size of the installer below 80 MB.

We already had an automated build script mechanism which was used internally to create DCU files and other library files. We embedded this script into an application and deployed it with the new installer. We also modified the installer script, so all packages would be compiled during the installation process. Below image shows our new installer during the task of compilation. 

After some successful beta tests we have tested the new installer on several PCs with various configurations and Delphi versions installed. Eventually, we published build 1601 as our first release including the new automated installer. A while later Build 1603 was published to fix some minor/major issues that we have encountered in the initial release. 

Here is a brief list of improvements that come with our new installer:

  • Fully automated installation process
  • Only available RAD Studio editions are displayed in the list 
  • Seamless installation experience for Delphi and C++ Builder
  • Fixed various bugs and issues associated with installing process
  • Automatic creation of 64-Bit library files for supported Delphi versions
  • Support for new Win64 Modern platform
  • Support for 64-Bit RAD Studio IDE
  • Fixed various issues regarding C++ Builder support

Delphi Community Edition 

The only problem that remains is support for Community Edition of Delphi and C++ Builder. Unfortunately these editions lack command line compilers (DCC32 or DCC64). Embarcadero has decided not to include command line compilers in the community edition. This means that our new installer won't be able to automatically compile packages for community edition. Users must manually install packages into community edition IDE as done in the legacy installer. That said, we are seeking a solution to overcome this problem. Most probably we will create a separate installer which will directly target a single version of community edition (The most recent version). This installer will deploy pre-compiled library files (BPLs and etc.) and will solely target Delphi community edition. We will announce when this specific version of installer is available.

 

 

 

 

 

 

Wednesday, 21 February 2024 08:08

New 2024 roadmap is announced

We are happy to announce our new roadmap.

For full article please visit below link:

uniGUI Roadmap 2024 (Q1 & Q2)

Tuesday, 19 September 2023 08:57

uniGUI introduces WebSockets

We are happy to announce that uniGUI has implemented support for WebSockets technology. This will open a whole new door to the way developers can manage events in a uniGUI web application.

For main article please follow below link:

uniGUI and WebSockets

Wednesday, 07 April 2021 11:35

New Roadmap is announced!

We are happy to announce our new roadmap!

Please follow this link for more details.

Wednesday, 22 June 2016 14:05

uniGUI Trial Edition updated to build 1308

We have updated trial edition to the most recent version. This update will fix an issue which prevented trial editions from creating new  ISAPI DLL applications. This build fixes this issue, so you will be able to evaluate ISAPI DLL in uniGUI Trial Edition.

As always trial edition can be downloaded from our download page.

Saturday, 11 June 2016 15:10

Version 0.99.95 is available

We are glad to announce that version 0.99.95 is available for all uniGUI editions.  Trial edition can be downloaded from download section.

This version includes many fixes and new features. Most probably it is the last version right before version 1.00RC which will be announced soon. Thanks to all developers around the world by supporting us especially those who have ordered a license.

Starting from this edition we have renamed project group file names to avoid confusion. In previous versions project groups were named with a number representing Delphi version. For example, uniGUI2011Group was name of project group for Delphi XE. In this new version we have  renamed it to uniGUI_XE_StdGroup, so  respected project group can be easily spotted.

 

ChangeLog for this version:

0.99.95
+----------------------------------------------------------------------------------------
[UNG-1783] - UniComboBox: Wrong text is diplayed when deleting item at current index
[UNG-1782] - UniDBLookupCombo: Execption raised when clearing filter edit
[UNG-1781] - Project groups renamed to match actual Delphi edition names
[UNG-1779] - UniDBLookupCombo: Execption raised while debugging
[UNG-1780] - UniDBLookupCombo: Issue when list is created at runtime and KeyValue is set to Null
[UNG-1778] - UniPropertyGrid broken functionality
[UNG-1777] - CoInitialize is not called properly.
[UNG-1765] - JS error when uniDBGrid LoadMask is not enabled.
[UNG-1762] - TUniImageListAdapter memory issue when attached to an Action
[UNG-1761] - TUniImageListAdapter scalability issue
[UNG-1756] - Action Lists implementation
[UNG-1757] - Action List support for Menus (MainMenu, PopupMenu, MenuItem)
[UNG-1758] - ToolBar with Action List and button with Action
[UNG-1760] - Broken LoadMask property of uniDBGrid
- 0002325: In Combo controls EmptyText is not published.
- 0002324: Bug when UniDataTimePicker is editor in DBGrid.
- 0002323: UniDBGrid: Filter doesn't work correctly after clear button.
- 0002322: UniDBLookupCombo: Component is not reset when filter is cleared.
- 0002321: UniImageList/UniNativeImageList: New UseGlobalCache property.
- 0002320: UniImageList/UniNativeImageList: Draw method implemented.
- 0002319: Issue when CoInitialize is called after ServerModule is inited.
- 0002078: Use global cache for ImageLists and other objects where possible.
- 0002313: Bug in uniNativeImage list GetPng and GetBitmap methods.
- 0002312: Recent issue in uniDBGrid which prevents mobile grids from working properly.
- 0002311: Delphi 10.1 Berlin support.
- 0002310: ShowMessage issue when active form is a LoginForm.
- 0002307: DateTimePicker: Can't set time @runtime when Kind = tUniTime.
- 0002302: OnColumnFilter event must return KeyValue when Filter is a DBLookupCombo.
- 0002301: Columns[n].Filtering.VarValue must return KeyValue when filter is a DBLookupCombo.
- 0002300: UniDBLookupCombo: Style property is published.
- 0002298: UniComboBox: New AnyMatch property.
- 0002295: Grid column Filter doesn't resize with the column.
- 0002294: Bug when UniContainerPanel is Mask target.
- 0002293: Issue when UniDBLookupCombo is a grid editor and field is a Lookup field.
New Demo: DBLookupComboBox
New Demo: ImageLists
New Demo: ActionList

Friday, 29 July 2011 14:49

Client side scripting with uniGUI

One of the exciting new features in version 0.86 is ability to write client side JavaScript event handlers from within Delphi IDE.  Each uniGUI control is attached to an Ext JS control. In some cases there are more than one Ext JS controls for a uniGUI control. For example a TUniForm is a combination of an ext.Window and an ext.form.FormPanel.

Thursday, 28 July 2011 15:47

Migration to version 0.86

As we discussed earlier versions 0.85 and 0.86 will be new milestones for uniGUI library. They will introduce new framework core which brings lots of architectural changes and improvements.

Here is a brief list of these changes:

  • All controls will be descendant of a common root opposed to previous releases where each Control had a different ancestor.
  • Only implemented properties and events are published. This will avoid confusion in previous versions where lots of public and published features in VCL mode were not implemented in Web mode.
  • Class types no longer change among Web and VCL. Now TUniButton is always a TUniButton regardless of the displayed mode.
  • In event handlers Sender parameter will always contain correct class type.
  • As a result of above changes you can safely use as and is operators.
  • Advanced client side event scripting.
  • Extended Server side event handling for click and mouse events.
Tuesday, 03 August 2010 12:10

Form Inheritance

Form Inheritance is one of the advanced features in Delphi. I've never used it much myself, but I know without it uniGUI can not be considered as complete. Some users asked about it and I decided to speed up its implementation.Currently it is implemented and being tested.

Procedure to create a new Inherited Form is a bit different than Delphi. You must use the newly added uniGUI Inherited Form function in the Wizard to create a new Inherited Form. It will display a list of available forms in your project. By simply selecting a Form from this list a new Inherited Form will be created. This feature will be available in next version 0.71.0