Quartex Pascal 1.0 Hotfix 2

Following the feedback of our users and backers we have issued a second hotfix which irons out a few issues here and there, most notably the license provisioning issue during startup.

As with all products of this complexity there are bound to be things that can be polished and made better – and we intend to do just that! Updates will be frequent and we fix bugs or mistakes as quickly as they are discovered and reported.

Machine signature

The reason the license provisioning dialog appeared often during startup despite the machine being provisioned already, was due to a relatively new Microsoft Windows feature called randomize hardware addresses (under Network & Internet / Wi-Fi). When this is enabled for a network connection (which is the default behavior) Windows will create a fake mac-address in an attempt to help prevent tracking.

The IDE now queries the actual mac-address specifically and is unaffected by random addresses

This randomization sadly affected hardware signature queries and traditional WinAPI calls, with random results every time the IDE performed a validity check. This has now been fixed and the IDE queries WMI for the actual address, which remains static unless the adapter is disabled.

Reloading packages

Due to the above case where the machine signature was affected, the IDE would prompt you to download packages again – even if they were already there. This will be ironed out by our next update. All you have to do is click cancel when the download window appears, then go to the main menu and select Tools > Reload Package Files to manually trigger a normal reload. Followed by Tools > Refresh runtime library files.

This is not something you need to do often, it became more visible than it should due to the hardware signature issue triggering the provisioning logic.

Triggering a manual reload of packages can be done via the Tool menu

Upcoming widgets

Our users have requested a string-grid and database-grid more akin to what they are used to under Delphi and Lazarus. We agree, and have already started on a more friendly drag & drop grid that can be easily styled, inherited from and used in a variety of ways.

The initial grid that has been in the RTL for some time was initially created to display map tiles and/or other graphically heavy elements. It has the benefit of using CSS that triggers the GPU to move things around at 60 fps – but at the cost of complexity and knowing HTML5 and CSS in-depth.

The old grid class will still be there, but we will deprecate it in favor of the new one. We didn’t have time to get the new grid into the RTL this update (read: hotfix), but it will be available in the next!

Other changes and fixes

  • Name qualifier was enabled for for some string properties in the inspector, causing the IDE to mistake it for a name property (identifier). A rare edge case which for the most part went unnoticed
  • An exception that occurred when deleting a group of widgets from a form design
  • Added support for HTTPS and ordinary certificates for nodejs
  • Added support for REST routing for HTTP/S
  • Added MariaDB example which demonstrates database creation, querying and REST routing – as well as connection pooling
  • Expanded the IDE’s back and next functionality, it now behaves more or less identical to Delphi and Lazarus
  • Fixed a bug in the property inspector where, if you scrolled to the bottom and then resized the inspector – it would not recalculate the position correctly
  • Removed legacy polyfill files (resizeobserver.polyfill.js and pointerevents.polyfill.js) from project templates
  • Updated Simple2D project template
  • Fixed a small issue with the New Form IDE function, which did not set displaymode and positionmode (plain copy from the template)
  • Went over the nodejs templates and fixed a constructor issue
  • Added missing menu items for lookup forms and lookup units
  • Fixed a mistake in TQTXOrmObject’s constructor and SetChanged() methods in qtx.orm.pas
  • Fixed an issue with package download where a dependency was downloaded despite already existing on the filesystem
  • Updated a declaration bug in the Phaser library where fields were marked as external, but the syntax difference between field and property was not correct
  • Fixed missing constructors in older Ragnarok units which used InitializeObject() and FinalizeObject(). These files are not yet used by the ragnarok code generator and thus flew under the radar
  • Fixed warnings and hints in the RTL. Mostly hints about case differences in the uses clause. Insignificant but still good to get rid of
  • Improved compiler message delegation internally in the IDE
  • Fixed a bug where the create-date in project files were not updated from local date/time format to ISO80601
  • Fixed a mistake in the build-process where some exception types were ignored that should be delegated to the console output
  • Updated examples that needed some love, especially the websocket examples
  • Updated the IDE’s internal interface parser to support external named fields for external class types
  • Started on our upcoming “live rendering” of HTML for the form designer ..
  • Started on HTML5 database grid widget ..

Published by Jon Lennart Aasenden

Lead developer for Quartex Pascal

Leave a Reply