Elevate Web Builder 1.02 is now available for download. If you're an existing customer, then you should be receiving an email shortly with download instructions. You can view the release notes, including any breaking changes, on the download page before downloading.
Elevate Web Builder 1.02 includes the following new features and enhancements:
The active web server setting is now saved with each project and restored when the project is re-opened. This makes it easier for working with multiple projects that use different web server settings.
The code editor now allows you to open any referenced unit by right-clicking on the unit identifier and selecting the Open Unit at Cursor option, or by simply using the Ctrl+Enter keys.
The project manager now includes two "quick setting" toggle buttons for the Compressed Output compilation setting and the new IE HTML5 compilation setting (see first item in Compiler section below).
The WebCtrls unit contains a new global event manager that streamlines the dispatching of events, especially under IE, and minimizes the event hooking overhead for each control instance. It also provides built-in mouse capture and control dragging capabilities that are uniform across all browsers.
The WebCtrls unit now contains a new TThemeManager object for managing static theme parts in an efficient way that minimizes lookups and fixes some issues with prior theme management methods.
The TLabel, TLink, TMemo, TListBox, TImage, TGrid, TPlugin, TPage, and TPanel controls now contain a Dock property for managing the docking of the controls to the top, bottom, left, or right side of their parent, or to fill the remaining parent client area. This property is synonymous with the Align property in the VCL framework.
There is a new TSplitter control that can manage splitting any controls that are docked to the parent (see last item).
There is a new TPaint control for providing HTML5 canvas support in an easy-to-use control (IE9 or higher required, see below for new compiler setting for this). This functionality includes a TCanvas class that encapsulates the canvas support that can be used with any parent control to allow drawing.
There is a new TCookies class and a global Cookies variable in the WebCore unit for managing the cookies in an application (visual or not). Previously, one had to use direct WebDOM unit calls to provide this functionality.
There is a new TPersistentStorage class and global LocalStorage and SessionStorage variables in the WebCore unit for managing the HTML5 storage in an application (visual or not). Previously, one had to use direct WebDOM unit calls to provide this functionality.
There is a new TBackground control (WebCtrls unit) for displaying background images in forms/panels, with support for tiling the background images and transparency.
The TDatabase class now includes new GetTransactions and LoadTransactions methods that allow the developer to retrieve and load all active transactions for the database in JSON format. In conjunction with the new TPersistentStorage class (see above item), these methods are useful for storing/loading the transactions to/from the browser storage.
The TDataSet component now includes new GetColumns and GetRows methods that allow the developer to retrieve and load all columns and rows in JSON format. In conjunction with the new TPersistentStorage class (see above item), these methods (and the existing LoadColumns and LoadRows methods) are useful for storing/loading datasets to/from the browser storage.
The TPanel and TForm controls now contain a new CaptionAlignment property that controls how the panel or form caption is aligned.
The TPanel and TForm controls now contain new Minimize and Restore methods for minimizing and restoring the panels/forms. When a panel/form is minimized, its height is set to the caption bar only, if the ShowBorder and ShowCaption properties are True, or the minimal size allowed based upon the ShowBorder property only if the ShowCaption property is False.
The TPanel control now contains OnCloseQuery and OnClose event properties for tracking the closing of the panel.
The TGrid control now allows for the grid columns' ControlType property to be set to ctLink in order to display links for the URL values in the column.
Non-editable (AllowEdit=False) TComboBox controls now behave more like their Windows counterparts in Delphi, including being able to use the up/down arrows to select values, being able to click the whole control and cause the drop-down list to appear, and always selecting the entire text.
The TCheckBox control now contains two new ValueChecked and ValueUnchecked properties that allow you to specify which string values to use when the check box is checked/unchecked.
The TRadioButton control now contains a new ValueChecked property that allows you to specify which string value to use when the radio button is selected.
The TPage control now allows you to write new HTML to the DocumentText property, allowing you to use a TPage control to display arbitrary HTML without specifying a URL.
The TPage control can now be bound to a dataset via new DataSet and DataColumn properties. The control expects the DataColumn to contain URLs for resources to be loaded in the control.
The TPlugin control can now be bound to a dataset via new DataSet and DataColumn properties. The control expects the DataColumn to contain URLs for resources to be loaded in the control.
The TObjectList class now includes Sorted and SortCaseInsensitive properties and a new Find method, that, together with two protected SortCompare methods, provide a basis for custom sorting of the contents of the object list for TObjectList descendant classes.
New overloaded version of the Trim function in the WebCore unit that trims all leading and trailing characters less than or equal to #32 from a string.
There is a new CreateActiveXObject internal system function for creating ActiveX objects that are castable to specific types of HTML elements in the browser's DOM.
There are new ParseXML and SerializeXML functions in the WebCore unit for parsing XML strings into TDocument DOM element instances, and serializing XML documents/nodes into strings.
You can now select whether the emitted output will be runnable under IE 8 (limited HTML5 functionality - persistent storage only) or IE9 (HTML5 canvas, persistent storage, and media functionality). For example, the IE9 functionality is required for use of the TPaint control.
Emitted output now contains a "viewport" meta tag to ensure that the content is not zoomed in/out when loaded on a mobile browser such as Safari on the iPhone.
The emitted font family names for all design-time settings and theme fonts now automatically include the generic font family. This does not apply to run-time, where it is already possible for the developer to specify generic font family names as part of the TFont.Name property setting.
The datasets, custom datasets (see next item), and modules resource names can now be configured via the Content tab of the EWB Web Server configuration dialog.
The EWB Web Server now includes support for a custom dataset module. This module can be specified via the Content tab of the EWB Web Server configuration dialog, and becomes the handler for all resources that use the custom datasets resource name (see prior item). For use with a custom dataset module, the installation now installs new TDatabaseAdapter and TDataSetAdapter components into the Delphi IDE that can be used to generate/consume dataset and transaction JSON for any set of TDataSet-descendant components in Delphi.
There are three new example application projects:
1) The Painting Example project that shows how to use the new TPaint control to draw a simple pie-chart with a legend, display a linear and radial gradient, and draw with the mouse.
2) The Docking Example project that shows how to use the new docking functionality to dock panels and resize them using the new TSplitter control.
3) The DataSet Client Example project that shows how to access custom datasets handled by a custom dataset module (example also included) created using Delphi XE or higher and registered with the EWB Web Server. This project also shows how to save/load a database and datasets from local storage in the web browser.
All of the example applications have been converted to use the new Modern theme, which is also automatically included and registered with the example applications.