Elevate Software

Login Login


Home  Elevate Software Blog

Icon Elevate Software Blog

Check Out this Elevate Web Builder 2 Application
Posted by Tim Young on Fri, May 22 2015


I'm happy to finally be able to share this really cool EWB 2 application with you. The application is called Cinedisk, and the author is Uli Becker. He originally developed the application using EWB 1, and it looked great even with a lot of the limitations that came with EWB 1 in terms of layout/design. However, the EWB 2 version is so cool that I asked him if we could host it directly on our web server. The application uses ElevateDB as the database engine.

And, without further ado, here is Cinedisk:


To login, use the following credentials:
  • English-speaking users: UserEN

  • German-speaking users: UserDE
The password for all users is: EDBDefault (case-sensitive)

The description from Uli:

"Cinedisk is an application that manages your movie collection (later TV series will be added). It communicates with TheMovieDatabase (TMDb https://www.themoviedb.org) which provides an API to collect any information you are looking for. The basic information are stored in an EDB-Database, all images like the movie's poster or the cast images are loaded from TMDb server at runtime. Also additional information and images like "Biography" or "Best movies" in an actor's detail window are requested at runtime.

TMDb uses JSON for all responses and that works nicely together with EWB. With EWB2 it's just fun to use TReader to parse the incoming JSON.

To add a new movie to your collection, click the button and enter the title (or a part of it) of the movie you are looking for. Cinedisk sends a request to TMDb and displays the result with all matching movies. Just click on the poster of a movie to show all details in a separate window. Here you can edit most of the fields. Links for trailers are stored in form of a YouTube-ID. If a trailer is missing, you can google for it using the button at the bottom (the app only accepts YouTube trailers). Next to this button you find a hint how to do that. Once you have changed the ID, you can play the trailer immediately.

To see additional information for actors, just click on their image to open a new window with biography and best movies (rated by the TMDb community). You can search for title, cast, content or a genre, to close the search result and return to the complete list of movies, just click on the matching icon.

To avoid flickering and to compensate the timing difference between the loading times of text and images, the application uses two instances of an embedded "content" form. Only after the loading process has completed, the "new" content form is displayed.

All layouts work with only a little of code - the new layout features of EWB2 were used to create a responsive layout. Thus resizing the browser window should keep a proper layout."

Please be sure to let Uli know what you think in the comments.

Tags: Elevate Web Builder, Example ApplicationPermanent Link 0 Comments

Build 9 of the Elevate Web Builder 2 Preview Now Available
Posted by Tim Young on Fri, May 22 2015

A new build 9 of the Elevate Web Builder 2 preview is now available on the web site:

Elevate Web Builder Downloads

It fixes the following issues:
  • An issue with a thread lockup with the EWB Web Server during request disconnects (caused in build 8).

  • The EWB Web Server was setting the Expires header in a way that would cause Chrome/Firefox to not detect new versions of an application properly.

  • An issue with the EWB IDE where the embedded IE web browser would get stuck in a hard loop during shutdown. This would especially happen after AJAX (TServerRequest) errors, and especially if running the application from the local file system.

  • An issue with the event handlers for the current form being cleared if the project was compiled/run/saved while there was a compilation error for the current form (caused in build 8).

  • The transaction commit functionality has been re-organized (again), so please read up here on how it works now:


    and here is my post on the changes in the thread that discusses the issues with the previous design:


    As mentioned in that post, there's a new transactions example project included with EWB 2 that shows how to handle transactions, and more specifically, transaction commit retries.

  • The compiler has been updated to fix a bug where it wouldn't properly detect invalid event handler assignments. Previously, the compiler would allow function events (return value) to be assigned to procedure events (no return).

  • Layout stretches now properly respect the specified constraints for a UI element/control. This was an omission that I hoped to resolve before the final release, and I took a moment to do so. This seems like a non-issue, but it's *very* important for enforcing the size of the TSurface while still allowing the TSurface to stretch to fill the available space in the browser viewport. This will be especially important when "flow" and other similar options are added later.

    All of the existing example projects have been updated to reflect this new capability, and you will see the following code in each:

    procedure TMainForm.MainFormCreate(Sender: TObject);
       with Application.Surface do

    Each example's main form is set up to be positioned in the center of the TSurface control (Layout.Position=lpCenter). By default, the TSurface control's layout is set to position to the top-left and stretch to the bottom-right. What the code above does is tell the UI manager that the surface should never stretch smaller in height than 40 pixels larger than the main form (visual spacing). Combined with the viewport overflow setting, this makes sure that the surface is always large enough to show the main form, while still allowing the surface to stretch to fit the viewport if the viewport is taller than this minimum height. The result is a nice, centered main form at all times, with a browser vertical scrollbar appearing when the height of the browser gets too small. This is especially important on Chrome on Android, which (incorrectly, IMO) resizes the browser when the soft keyboard is displayed, instead of simply overlaying the soft keyboard over the browser.

    As part of the above change to the stretching, I took the opportunity to remove a few of the layout stretch options that should not have been there in the first place. These layout stretch options (TLayoutStretch type) combine position with the stretch, which breaks the design concept of the Layout.Position property being the only property where you specify positioning. The stretch options that have been removed are:


    However, the downside of this change is that other layout stretch values now need to be updated. I've included a fixlayout utility in this build, and you can find it in the:


    subdirectory under the main installation directory. It's pretty self-explanatory: you run it, select the output directory (updating is *not* in-place) for the modified forms/interface files, and then select the forms/interfaces that you want to update. After updating the selected files, backup any existing files and then copy the modified files over the existing files. The standard control interfaces and example projects included with EWB 2 are already updated.

  • The XE8 module templates were not being installed properly.

Tags: Elevate Web Builder, PreviewPermanent Link 0 Comments

DBISAM 4.41 Released
Posted by Tim Young on Mon, May 11 2015

DBISAM 4.41 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.

This release includes support for RAD Studio XE8 (Delphi 32/64-bit and C++Builder 32/64-bit). It also contains bug fixes for several incident reports, which are detailed here.

Tags: DBISAM, New ReleasesPermanent Link 0 Comments

ElevateDB 2.19 Released
Posted by Tim Young on Mon, May 11 2015

ElevateDB 2.19 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.

This release includes support for RAD Studio XE8 (Delphi 32/64-bit and C++Builder 32/64-bit). It also contains bug fixes for several incident reports, which are detailed here.

Tags: ElevateDB, New ReleasesPermanent Link 0 Comments

Elevate Web Builder 2 Release Delayed Again
Posted by Tim Young on Sun, Apr 26 2015

Unfortunately, I'm still not quite finished with the Elevate Web Builder 2 documentation, so the release is going to be delayed for a few more days. I will be uploading a new preview build today, however, so that everyone can start using the release candidate product. My apologies for the delay.

These are the new features in the release candidate:
  • You can now bundle external images, fonts, etc. in addition to Javascript using the project manager. However, the web fonts are not being registered yet, so don't use them yet. I'll be adding this in before the final release.

  • There's a new "Reset Interface" option in the form designer that allows you to reset the interface of a control to its default state. This is useful when switching out control interfaces.

  • There is now support in the dataset transactions for fail-safe commits. You can retry commits that fail as many times as necessary. In addition, this means that commits are asynchronous also, and so you can use transaction wrappers around dataset update events without worrying about timing issues with the transactions, or trying to chain together event handlers.

  • The TDatabase.Load method is now called LoadRows. This is due to the inclusion of a new TDatabase.LoadColumns method. The general idea here is to allow for more dynamic datasets from the back-end web server application.

  • You can use user/password parameters for authentication instead of http headers. There's a new TDatabase.AuthenticationMethod method for specifying this (default is headers).

  • The object persistence is done, meaning that you can now load/save TPersistent descendants to/from JSON using a couple of method calls.

  • There's a new TViewport class whose instance is attached to the TApplication global class instance. You can use it to specify whether or not to show scrollbars in the browser viewport (separate X and Y overflow properties), as well as retrieving information about the browser viewport size.

  • The TGrid control is done. It includes automatic fit for columns (right stretch) and the ability to turn on/off column headers and lines. It can now also have a transparent background, which you can see in action in the multimedia example (see below).

  • The TAudio/TVideo controls are done.

  • Double-taps are now being properly mapped to OnDblClick events for touch environments.

  • There's a new standard interface that is more in line with the Windows8/Metro style. If you liked the old one, then you're going to have to wait a little while before I can update it for all of the new controls that have been completed since I switched out the old interfaces. I've also got a more rounded interface that will be published soon, also, and it uses Google's Open Sans font, by default.

  • There are new clElevate* colors that represent a default color scheme that is used in the default standard interface. It contains 3 shades of black, gray, blue, orange, and green, as well as a gray background fill color.

  • The TEWBDatabaseAdapter component for Delphi now includes a HandleRequest method that will take an incoming TServerRequest from an EWB server module and handle all of the messy details of processing the request and generating a response. In addition, there are now new TEWBDatabaseAdapter.OnAuthenticateUser and TEWBDataSetAdapter.OnFilterRows events that allow you to automate authentication and filtering of datasets. The TEWBDatabaseAdapter now also handles URL user/password authentication (see above).

  • There are 3 new sample projects, one for multimedia, one for layout properties, and one for object persistence (see above).

  • There are quite a few little bug fixes and minor changes to the interfaces. If you've modified/customized the interfaces at all for your projects, then you may have to adjust your modifications to accommodate some of these changes.
If you encounter a bug with the release candidate, please report it, but don't necessarily expect a fix before the actual release. If it's anything more than a very simple fix, I'll probably delay it until after the release. I'm planning on doing a quick minor release anyways in order to clean up any leftover issues that needs to be addressed.

If you don't see a particular feature/control property, method, or event, then it won't be in the initial release. Just submit an enhancement request and I'll work it in ASAP.

Tags: Elevate Web Builder 2Permanent Link 0 Comments

Elevate Web Builder 2 Presentation at TDUG Meeting
Posted by Sam Young on Tue, Apr 21 2015

Tim and I were graciously invited to showcase Elevate Web Builder 2 at the Toronto Delphi User Group meeting scheduled for May 4, 2015. If you will be in the Toronto area, you'll want to be sure to attend. Tim will be demonstrating Elevate Web Builder 2, focusing on the exciting new features and ease of use that are the highlights of the new version.

The meeting will be held at the Northern District Library, 40 Orchard View Blvd. in Toronto, from 6-8 PM. We hope you can attend - we are very excited about the product, and of course it would be great to meet you and be able to put a face to the names of those we've been communicating with over the years.

For more information, you can visit the TDUG website.

If you will be attending or if you have any questions, please email me at samyoung@elevatesoft.com and let me know.

We're looking forward to seeing you there!

Tags: Elevate Web Builder, PromotionsPermanent Link 0 Comments

Previous Entries: 1-6 7-12 13-18 19-24 25-30 31-36 37-42 43-48 49-54 55-60 61-66 67-72 73-78 79-84 85-90 91-96 97-102 103-108 109-114 115-120 121-126 127-132 133-138 139-144 145-150 151-156 157-162 163-168 169-174 175-180 181-186 187-192 193-198 199-204 205-210 211-216 217-222 223-228 229-234 235-240 241-246 247-252 253-258 259-264 265-270 271-276 277-281