Elevate Software

Login Login


Home  Products  Elevate Web Builder for Web Application Developers

Icon Elevate Web Builder for Web Application Developers

Web Development Productivity
Traditionally, development of web browser applications has been a very tedious process that involves a lot of hand-coding, and experience in several different, but necessary, technologies.Image Desktop application developers have had integrated development environments (IDEs) for years that combine both the design and coding aspects of applications into one unified tool that allows a developer to be very productive. Elevate Web Builder brings this productivity to web browser application development, allowing developers with a lot of desktop application development experience but less web development experience, to instantly create web browser applications. More importantly, it enables the developer to create web browser applications that are guaranteed to contain fewer bugs, and therefore be much more reliable than any hand-coded alternative. A web browser application created with Elevate Web Builder will look the same in all modern browsers, relieving the application developer of the very difficult job of ensuring that all visual controls in their application look and behave the same way. All visual controls are themed, and applications can use any number of themes and can switch themes at runtime.

Elevate Web Builder's integrated development environment contains the following key features:

  • A very fast compiler that compiles the source code of any project into an optimized JavaScript application.

  • An integrated, WYSIWYG (What You See Is What You Get) form designer and object inspector that allows the developer to design the visual elements of a web browser application quickly and easily.

  • An easy-to-use code editor with syntax highlighting and automated code updating to reflect changes in the form designer and object inspector.

  • A project manager that provides quick access to all source units and external source code in a project.

  • Image
  • A local web server and browser for running your web applications directly in the IDE. The local web server also allows for sending debug messages directly to the IDE.

  • A theme editor for creating new themes that can be distributed to other Elevate Web Builder developers.

  • Easily-accessible online help that loads directly in the IDE and does not have any external dependencies that can easily break and make documentation unavailable.

Extensive Component Framework
Elevate Web Builder includes a complete component framework that includes both visual components and non-visual components. The following components are available for use on a form:

Image TLabelStatic text control
Image TEditSingle-line edit control
Image TMemoMulti-line edit control
Image TButtonCaptioned button control
Image TCheckBoxCheck box control
Image TRadioButtonRadio button control
Image TComboBoxCombo box control
Image TListBoxList box control
Image TImageImage display control
Image TGridGrid control
Image TPanelPanel control
Image TSeparatorSeparator control
Image TBackgroundBackground control
Image TPaintPaint (canvas) control
Image TSlideShowSlideshow control
Image TAudioAudio control
Image TVideoVideo control
Image TPluginPlugin control
Image TPageHTML page control
Image TLinkLink control
Image TSplitterSplitter control
Image TTimerTimer component
Image TDataSetDataset component
Image TServerRequestServer request component
Image TServerRequestQueueServer request queue component
Image TScriptScript component

The framework includes many additional functions, procedures, and classes to use for object lists, string lists, parsing and string manipulation, as well as direct manipulation of the browser DOM (Document Object Model) classes, functions, procedures, and variables.

The Elevate Web Builder framework also includes the following notable features:

  • Forms and panels can look like windows, or they can look like normal web "pages". By default, forms and panels have caption bars, icons, close buttons, borders, and shadows, but any of these features can be turned off with a simple property switch at design-time. Dragging of forms and panels is also supported through a single property but, by default, is not enabled.

  • Forms can be shown normally in an asynchronous manner, or they can be shown modally. If a form is shown modally, then the user will not be able to interact with any other visual portion of the application until the form is closed. The framework also includes standard modal dialog methods that can be used to display error messages or confirm certain operations with the user.

  • All visual components are themed, and their look and feel can be completely changed by simply changing the active theme for the application at either design-time or run-time.

  • All focusable visual components have different visual states for when the mouse is over the control, when the control has focus, or when the control is clicked.

  • All visual components share a common set of mouse events for mouse down/up, move, enter/leave, click, and double-click event handling. All edit components include additional keyboard events for key down/up, and key press event handler. All focusable components include additional enter/exit events.

  • Most visual components can be unbound (the default state) or bound to a dataset and column. This avoids a situation where there are separate versions of the same control for unbound or bound usage. Also, this gives the developer the ability to mix unbound and bound controls as necessary. When a visual component is bound to a dataset and column, its contents are automatically updated as the dataset is navigated and/or modified.

  • All resizable visual components can be docked into their parent control (top, left, right, bottom, or fill), and a splitter control is provided for allowing the user to resize docked controls at run-time.

  • Image
  • The grid component is fairly extensive, and supports mixing unbound and bound columns, individual cell selection or entire row selection, the display of column headers, in-place editing via edit, combo box, or check box controls, read-only and disabled columns, column header clicking (including automatic column sorting for grids bound to datasets), and fixed or sizable columns.

  • Datasets are easily handled with the dataset component, which supports navigation, searching sorting, inserting, updating, deleting, transactions, and two-phase commits. Dataset columns can be defined at design-time or loaded from a JSON (JavaScript Object Notation) string that was returned from a web server using a server request. Likewise, transaction operations and dataset rows can be saved/loaded from JSON strings, allowing persistence to and from local storage in the browser.

  • A server request component is used to communicate with the web server in an application. All server requests are asynchronous, but a server request queue component is also provided in order to ensure a serialization of requests for a particular resource. Server requests can send/receive any textual data, including XML/HTML, JSON, key-value pairs, or base64-encoded binary data.

Language and Compiler Features
The language used by Elevate Web Builder is an Object Pascal dialect that retains as much compatibility as possible with the Object Pascal language used by the Delphi development environment from Embarcadero Technologies. Object Pascal is a highly-structured, strongly-typed, object-oriented language that is also simple to use due to its English-like keywords and statements. This makes it an ideal language for projects involving multiple developers where all developers working on the project must be able to easily read the source code of other developers. The compiler in the Elevate Web Builder IDE takes advantage of the strongly-typed nature of the Object Pascal language to only emit JavaScript code in the emitted application that is actually referenced. Any functions, procedures, constants, variables, types, classes, member variables, methods, or properties that aren't referenced in the source code for an application are not emitted. This keeps the size of the resultant application as small as possible.

Some of the more interesting features of the language and compiler are:

  • The compiler can emit a compressed (and obfuscated) application that makes the application very small and very difficult to read with the naked eye or reverse-engineer into any meaningful source code. Compiler compression can be toggled on or off in the project options for any project, and a compressed application is normally less than half the size of an uncompressed application.

  • The compiler includes a very small runtime overhead of around 10KB for an empty, and uncompressed, non-visual application, and around 4KB for an empty, but compressed, non-visual application.

  • The compiler emits all files necessary to successfully run the application, including an HTML loader file, the JavaScript application, all included theme style sheets, and any resources such as images that are specified at design-time.

  • Image
  • The compiler can display automatic warnings and hints for source code issues such as uninitialized variable references or variables that are declared but never referenced.

  • The String, Integer, Double, Boolean, DateTime, class, and method types are supported. Strings are immutable and cannot be modified in-place. The DateTime type is type-compatible with the Integer type and represents raw milliseconds, making date/time arithmetic fairly easy. Method type references, such as those used for events, are referenced and de-referenced automatically by the compiler based upon how they are used, eliminating the need for special address-of or de-referencing operators.

  • A base TObject class exists in the runtime that is the ancestor of all classes. All classes use a normal Create/Free lifecycle, and the Free method automatically checks for a nil reference when executing, so a procedure such as FreeAndNil is not required.

  • Class methods can be declared as virtual and overriden by descendant classes with the override keyword. Methods can also be declared as abstract, and will trigger a compiler error if an instance of a descendant class is created without the abstract methods being overriden and implemented.

  • Static class variables, methods, and properties are supported.

  • All functions, procedures, and methods can have default parameters, and all variables can have default values. Variables that are declared within a class can also have default values, and any instance of the class will automatically have all of its variables initialized to the specified default values. If a variable within a class doesn't have a default value, then the compiler will automatically generate an appropriate default value based upon the type of the variable.

  • Dynamic arrays can be passed directly as constant parameters to any function or procedure without being created first. Dynamic arrays can also be declared with default values, thus eliminating the need to specifically initialize them with values.

  • Overloaded functions, procedures, and methods do not require a separate overload keyword. The compiler automatically figures out which version of any particular function, procedure, or method to call based upon its signature (parameters, result type).

  • Indexed properties can be designated as default properties with the default keyword, and there can be multiple default indexed properties that accept different index types. The compiler automatically figures out which version of the property to use by its index parameter type. In addition, arrays can be used directly as indexed properties without requiring getter/setter methods.

Example Applications
Please take a moment to check out the following example applications. The source code for all of these example applications is included with Elevate Web Builder, and can be easily installed using an option on the IDE's Help menu. All of the example applications use a custom theme called "Modern" that is also included with the product.

Form Submittal Example

Illustrates the HTML form submittal functionality discussed in the HTML Forms topic in the product manual.

Run the Application

Master-Detail Database Example

Illustrates the dataset functionality discussed in the Creating and Loading DataSets, Navigating DataSets, Searching and Sorting DataSets, Updating DataSets, Transactions, Responding to DataSet Changes, and Binding Controls to DataSets topics in the product manual.

Run the Application

Audio Plugin Example

Illustrates the dataset functionality as well as how to use the TPlugin control to play audio files.

Run the Application

Painting Example

Illustrates how to use the TPaint control and its TCanvas functionality to perform drawing operations on a form.

Run the Application

Docking Example

Illustrates how to dock panels and use the TSplitter control to resize the docked panels.

Run the Application

Custom DataSet Client Example

Illustrates how to load custom datasets from the Elevate Web Builder Web Server using a custom dataset module project, transaction control, and how to save/load the database state from local storage in the web browser.

Run the Application

Form Embedding Example

Illustrates how to embed forms within other container controls (panels/forms).

Run the Application

Slideshow Example

Illustrates how to use the TSlideShow and TAudio controls to display a slideshow accompanied by a soundtrack.

Run the Application
Order Order

Ordering is fast, easy, and secure, and you can be installing Elevate Web Builder within the hour.

Order Now

Trial Version Trial Version

You can download a trial version of Elevate Web Builder and evaluate the product before your purchase.

Download Now

Operating Systems Operating Systems

Windows XP or higher