<?xml version="1.0" encoding="UTF-8"?>        <rss version="2.0"
             xmlns:atom="http://www.w3.org/2005/Atom"
             xmlns:dc="http://purl.org/dc/elements/1.1/"
             xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
             xmlns:admin="http://webns.net/mvcb/"
             xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
             xmlns:content="http://purl.org/rss/1.0/modules/content/">
        <channel>
            <title>
									Latest Releases - Quartex Pascal Forum				            </title>
            <link>https://quartexdeveloper.com/community/latest-releases/</link>
            <description>Quartex Pascal Discussion Board</description>
            <language>en-US</language>
            <lastBuildDate>Thu, 16 Apr 2026 21:20:04 +0000</lastBuildDate>
            <generator>wpForo</generator>
            <ttl>60</ttl>
							                    <item>
                        <title>Hotfix: version 1.0.0.2</title>
                        <link>https://quartexdeveloper.com/community/latest-releases/hotfix-version-1-0-0-2/</link>
                        <pubDate>Fri, 24 Oct 2025 19:56:54 +0000</pubDate>
                        <description><![CDATA[We have fixed a lot of things that sadly escaped us last Friday, including a few glaring ones that have prevented users from fully working with QTX. We apologize for the inconvenience of thi...]]></description>
                        <content:encoded><![CDATA[<p>We have fixed a lot of things that sadly escaped us last Friday, including a few glaring ones that have prevented users from fully working with QTX. We apologize for the inconvenience of this, we have setup a release schedule that is more in-depth for future updates.</p>
<p>The most glaring mistake was when copying resources (like the platform.js file) where we somehow had a logic mistake, causing the file to be raw-copied from the encrypted package-file. This meant the data was garbled and caused problems when running the code. As all great bugs this was a one-liner, but a very very important one!</p>
<p><strong>Fixes in this version</strong></p>
<ul class="wp-block-list">
<li>A focus issue when pressing F12 to toggle between code/form is taken care of</li>
<li>Shift + F12 now brings up a quick-search dialog, just like delphi</li>
<li>CTRL + F12 will bring up a similar quick-search unit dialog, just like delphi</li>
<li>Dependencies on pointer and resize polyfill js-files is now gone, they were purely there to support older webkit browsers, and are now obsolete.</li>
<li>Removed said dependencies from the template HTML files</li>
<li>Fixed an issue where “New form” did not set the correct displaymode + positionmode. This should be absolute + inlineblock</li>
<li>Fixed a problem with gamepad delegate classes not being initialized properly</li>
<li>Added gamepad delegates to TQTXGraphicView so they can be easily hooked up in the 2D game project type</li>
<li>Gone over all project types and removed polyfills and set new default values. Also removed units that dont really need to be in the uses clause.</li>
<li>Fixed the DOSBOX demo, it needed some love and a custom css rule to define the virtual machine display size (one of the first demos we had, so it was old!)</li>
<li>Removed test projects that should never have been included</li>
<li>Fixed a toolbar resize issue. If the screen resolution is too small, the toolbar breaks to two lines, but autosize doesnt function, hiding some buttons. This is actually a Delphi bug. I implemented a resize fix for it.</li>
<li>Default IDE theme changes to light for simplicity sake (no colors issues with “new project” dialog, damn Delphi VCL styling missing category elements).</li>
<li>Two units belonging to the DOM namespace had been misplaced in common, files are now moved to the correct package.</li>
<li>Rebuildt helpfiles with more topics added. A pdf will be made available for download separately.</li>
<li>Fixed a small attachment issue with the debug process.</li>
<li>CopyResource() from the IDE's resource cache did not check the cipher for the commercial packages correctly, and emitted garbled data. This is now fixed (thank you Hackbart!)</li>
<li>There was a syntax error in two user packages, and a handful of warnings in our system packages. These have thankfully been fixed</li>
<li>Updated examples so they build</li>
<li>Updated the node.js project templates</li>
<li>Removed obsolete packages</li>
</ul>
<p>Make sure you update ALL the packages from the update-manager! This is very important.</p>]]></content:encoded>
						                            <category domain="https://quartexdeveloper.com/community/latest-releases/">Latest Releases</category>                        <dc:creator>Jon Lennart Aasenden</dc:creator>
                        <guid isPermaLink="true">https://quartexdeveloper.com/community/latest-releases/hotfix-version-1-0-0-2/</guid>
                    </item>
				                    <item>
                        <title>Public release v1.0</title>
                        <link>https://quartexdeveloper.com/community/latest-releases/public-release-v1-0/</link>
                        <pubDate>Tue, 21 Oct 2025 14:14:13 +0000</pubDate>
                        <description><![CDATA[Yesterday evening we hit the publish button for Quartex Pascal v1!It has been a long, long road with too much work to list, but we feel that its reached a level of maturity that makes it usa...]]></description>
                        <content:encoded><![CDATA[<p>Yesterday evening we hit the publish button for Quartex Pascal v1!<br />It has been a long, long road with too much work to list, but we feel that its reached a level of maturity that makes it usable by everyone.<br /><br />It is easy to forget just how much tooling is involved, not just in the IDE or RTL, but also on the back-end. Our back-end system is written in QTX itself, dealing with everything from the internal build process to licenses to everything else under the sun.<br /><br />Well, we hope everyone has a great time with v1.0 -- and help us spread the word!</p>]]></content:encoded>
						                            <category domain="https://quartexdeveloper.com/community/latest-releases/">Latest Releases</category>                        <dc:creator>Jon Lennart Aasenden</dc:creator>
                        <guid isPermaLink="true">https://quartexdeveloper.com/community/latest-releases/public-release-v1-0/</guid>
                    </item>
				                    <item>
                        <title>Finally release candidate!</title>
                        <link>https://quartexdeveloper.com/community/latest-releases/finally-release-candidate/</link>
                        <pubDate>Tue, 23 Sep 2025 13:48:49 +0000</pubDate>
                        <description><![CDATA[We have finally, after much, much work and over a year extra to get the debugging and other tidbits in place, reached release candidate status.
This week licenses will be issues to all prev...]]></description>
                        <content:encoded><![CDATA[<p>We have finally, after much, much work and over a year extra to get the debugging and other tidbits in place, reached release candidate status.</p>
<p>This week licenses will be issues to all previous backers -- and after the initial feedback from our backers, the product goes live and on sale.</p>]]></content:encoded>
						                            <category domain="https://quartexdeveloper.com/community/latest-releases/">Latest Releases</category>                        <dc:creator>Jon-Lennart Aasenden</dc:creator>
                        <guid isPermaLink="true">https://quartexdeveloper.com/community/latest-releases/finally-release-candidate/</guid>
                    </item>
				                    <item>
                        <title>Introduction to Quartex Pascal</title>
                        <link>https://quartexdeveloper.com/community/latest-releases/introduction-to-quartex-pascal/</link>
                        <pubDate>Tue, 23 Sep 2025 08:39:29 +0000</pubDate>
                        <description><![CDATA[Early Access version 2 pdf edition will be released towards the end of this week, probably September 25th 2025. The book is now 468 pages in length. 
The book now contains a chapter on data...]]></description>
                        <content:encoded><![CDATA[<p>Early Access version 2 pdf edition will be released towards the end of this week, probably September 25th 2025. The book is now 468 pages in length. </p>
<p>The book now contains a chapter on databases - see <a title="SQLite example" href="https://www.educational-computing.com/qp/db" target="_blank" rel="noopener">https://www.educational-computing.com/qp/db</a> for an SQLite example from the database chapter. This example is an early version, a later version tidies up a couple of things.</p>]]></content:encoded>
						                            <category domain="https://quartexdeveloper.com/community/latest-releases/">Latest Releases</category>                        <dc:creator>drbond</dc:creator>
                        <guid isPermaLink="true">https://quartexdeveloper.com/community/latest-releases/introduction-to-quartex-pascal/</guid>
                    </item>
				                    <item>
                        <title>Mac/Mac M1+/Windows 11 ARM</title>
                        <link>https://quartexdeveloper.com/community/latest-releases/mac-mac-m1-windows-11-arm/</link>
                        <pubDate>Thu, 24 Aug 2023 13:18:32 +0000</pubDate>
                        <description><![CDATA[This is very exciting, Before I dive in (was an avid SMS user before it disappeared) I have moved to all Mx Macs running Windows ARM on VMWare.  I have found about a 80% success rate running...]]></description>
                        <content:encoded><![CDATA[<p>This is very exciting, Before I dive in (was an avid SMS user before it disappeared) I have moved to all Mx Macs running Windows ARM on VMWare.  I have found about a 80% success rate running legacy Windows apps on the ARM version.  Are you compiling native Mac and/or Mac M1 as well at the Hobbiest level?  <br /><br />I just write small useful free apps for my hobbies so I do want to dive in at the high dollar range. I am an Embarcadero Technology Partner so I do have the latest Delphi running on the ARM so I could try to compile QTX to the M1 ARM Mac (I also have it running on an Intel Mac where I could try to compile it to also)</p>
<p>Thanks, Jim</p>]]></content:encoded>
						                            <category domain="https://quartexdeveloper.com/community/latest-releases/">Latest Releases</category>                        <dc:creator>JimKueneman</dc:creator>
                        <guid isPermaLink="true">https://quartexdeveloper.com/community/latest-releases/mac-mac-m1-windows-11-arm/</guid>
                    </item>
				                    <item>
                        <title>Evaluation Copy</title>
                        <link>https://quartexdeveloper.com/community/latest-releases/evaluation-copy/</link>
                        <pubDate>Tue, 02 May 2023 23:06:10 +0000</pubDate>
                        <description><![CDATA[Can I install a copy before I decide to be a member? I just discovered the project and  I would like to run it.]]></description>
                        <content:encoded><![CDATA[<p>Can I install a copy before I decide to be a member? <br />I just discovered the project and  I would like to run it.</p>]]></content:encoded>
						                            <category domain="https://quartexdeveloper.com/community/latest-releases/">Latest Releases</category>                        <dc:creator>Edgar</dc:creator>
                        <guid isPermaLink="true">https://quartexdeveloper.com/community/latest-releases/evaluation-copy/</guid>
                    </item>
				                    <item>
                        <title>Quartex Pascal ~ Build 0.17.3.6</title>
                        <link>https://quartexdeveloper.com/community/latest-releases/quartex-pascal-build-0-17-3-6/</link>
                        <pubDate>Fri, 07 Apr 2023 10:12:53 +0000</pubDate>
                        <description><![CDATA[Quartex Pascal ~ Build 0.17.3.6


This update should be a positive experience! In our last update we made an attempt to solely use zIndex to deal with element visibility, which sadly turn...]]></description>
                        <content:encoded><![CDATA[<div class="stackable mb-xs">
<div class="sc-jJoQJp gFxXxp"><strong><span class="sc-cLqoAx jQrbkn" style="font-size: 14pt" data-tag="post-title">Quartex Pascal ~ Build 0.17.3.6</span></strong></div>
</div>
<div class="sc-kRqKYU gonnPU sc-auqbC bKryGU" data-tag="post-content">
<p>This update should be a positive experience! In our last update we made an attempt to solely use zIndex to deal with element visibility, which sadly turned out to be impossible. It was worth a shot, but in the end the original idea turned out to be the correct way of doing things.</p>
<p>ZOrder is still there as a property, and you can set this directly if you need it. So all in all we gained a better understanding of what not to do, but we also solved what we set out to fix, namely how TQTXWindow can deal with it's bringToFront() and sendToBack() issues. Which is now dealt with properly, causing no problems with embedded IFrame widgets.</p>
<h3><strong>Other changes</strong></h3>
<p>The changelog for the previous update was massive, and all those changes still stand. It was only the zIndex that caused issues - which has now been fixed. Besides that we have also fixed a few hiccups with the IDE:</p>
<ul>
<li>Pressing CTRL + F while a search-dialog is active caused an access violation. This has now been fixed</li>
<li>We have had problems with the file-change watcher thread. I have implemented a manager object for this so that ignoring or listening to changes is offloaded there rather than inside the thread itself. This has fixed the issue of BeginUpdate() and EndUpdate() calls to enable/disable watching for changes. Normally when the IDE does changes, it disables change notification to avoid reporting changes it already knows about (or is doing at the moment). This caused issues with the thread because changes require delicate handling of the changelog from the OS. So this fixes the issue</li>
<li>Added watcher code for File-Added and File-Removed so that these are handled more carefully</li>
<li>Added a OnItemDeleted event to TFileSource. When the filesource updates it's file-index, it will now report when files have been removed. This gives the IDE a chance to close whatever editor is active for that file, and also check-in the stream it might be holding for that file.</li>
</ul>
<h3>What's next?</h3>
<p>Next to be fixed is the colors for SynEdit that affects non-pascal units. The color config must be expanded so you can chose what filetype you are defining colors for -- or if you want to use the same color coding for all files (might be easiest). The TSynHighlighter components have somewhat different properties depending on the language / filetype, so i need to take a closer look at what we can do there.</p>
<p>Then there is the fixups to the Ragnarok codegen</p>
<p>Finally, the timer for auto-synchronization of the AST (background compilation). This is already in place, I just need to agree with myself on some rules for when to update the AST and consequently, the visual overview of the unit.</p>
<p>Once the above points are done, I think the IDE is pretty smooth and good to go for version 1.0. The rest of the changes, like getting the new desktop app-model into the IDE is pretty straight forward and easy -- so I will save that for last.</p>
<h3>Download</h3>
<p>As always, backers can download from <a title="https://www.patreon.com/QuartexNow" href="https://www.patreon.com/QuartexNow" target="_blank" rel="noopener">Patreon</a>. </p>
</div>
<div id="wpfa-1111" class="wpforo-attached-file"><a class="wpforo-default-attachment" href="//login.quartexdeveloper.com/wp-content/uploads/wpforo/default_attachments/1680862373-qtx_01.png" target="_blank" title="qtx_01.png"><i class="fas fa-paperclip"></i>&nbsp;qtx_01.png</a></div>]]></content:encoded>
						                            <category domain="https://quartexdeveloper.com/community/latest-releases/">Latest Releases</category>                        <dc:creator>Jon Lennart Aasenden</dc:creator>
                        <guid isPermaLink="true">https://quartexdeveloper.com/community/latest-releases/quartex-pascal-build-0-17-3-6/</guid>
                    </item>
				                    <item>
                        <title>Major RTL update released</title>
                        <link>https://quartexdeveloper.com/community/latest-releases/major-rtl-update-released/</link>
                        <pubDate>Sun, 02 Apr 2023 03:18:26 +0000</pubDate>
                        <description><![CDATA[It&#039;s been 3 weeks since the last update, but rest assured that those weeks have not been wasted. In fact, I have worked on QTX every single day in from afternoon to bedtime. The changes and ...]]></description>
                        <content:encoded><![CDATA[<p>It's been 3 weeks since the last update, but rest assured that those weeks have not been wasted. In fact, I have worked on QTX every single day in from afternoon to bedtime. The changes and fixes in this update are in their hundreds. I will only list those that are <em>of immediate interest</em> for users to know about.</p>
<p><span>Please be advised that </span><strong>this update is very much work in progress</strong><span>, meaning that if you experience any issues then please report those issues so I can get them fixed. The ZIndex support especially is borderline experimental, since it's one of those absolutely bizarre aspects of HTML that makes no sense from an architecture point of view.</span></p>
<p><u>To underline</u><span>: This update contains </span><strong>no new</strong><span> .exe file, purely RTL changes! It is the same exefile as was in the last update (I have to do the RTL changes before I go in and make changes to the exe). For those of you that are waiting for IDE fixes, sit tight, they will be out very soon.</span></p>
<h3>Partial changelog</h3>
<ul>
<li><strong>Completely overhauled the theme.css file so it takes height for mobile platforms, make sure you copy this into your existing projects!</strong> Also replace the old default.theme.css in the themes folder with the new one!</li>
<li>SetLeft, SetTop, SetWidth and SetHeight optimized</li>
<li>MoveTo, SetSize, SetBounds, BoundsRect adjusted to call the above methods when doing changes, rather than ad-hoc setting the values</li>
<li>GetClientRect fixed, it now uses GetClientWidth() and GetClientHeight() which adjusts for the any border-padding and margins</li>
<li> <strong>Added support for Shadow DOM</strong>, calling TQTXWidget.AttachShadow() creates a shadow-dom on an element, which can be accessed via the property ShadowRoot: TQTXWidget, or direct access to the shadow handle via ShadowHandle</li>
<li><strong>Introduced the concept of "Synchronized widgets".</strong> By setting the Synchronized: boolean property on a widget inside the constructor callback, the widget will wait until all it's children are created and in the DOM (as well as itself) before invoking ObjectReady(). This is important for widgets that wrap external JS frameworks, or that needs to be 100% sure that the widget is indeed "ready" before it's manipulated further.</li>
<li>Added a new CreateOptions flag, wmSynchronized, which developers can set if they dont want to set the Synchronized property. The function GetCreateOptions() can be overriden and you can add the wmSynchronized flag to the result (datatype is a set)</li>
<li>Introduced stacking-context functions to TQTXWidget: GetStackContextFor() and an overloaded version that also takes a filter parameter. This will return an array of each child element on a widget, sorted by their element-index. This can be used to determine how widgets are overlapping</li>
<li>Optimized BringToFront() and SendToBack(), there was no need for the RemoveChild() call prior to re-insert or re-append of the element</li>
<li><strong>Implemented Tooltips (!)</strong> This is now in the unit qtx.dom.tooltip.pas</li>
<li>Expanded TQTXWidget with a Hint property, as well as a ShowHint property</li>
<li>TQTXDomApplication makes a reference to TQTXTooltipManager, which brings in that part of the RTL automatically. You will need to reference qtx.dom.tooltip.pas in your units if you wish to access the tooltip system directly</li>
<li>Added a InstallWindowClass() method to TQTXToolTipManager, you can use this to install your own tooltip widget if you want to style it differently</li>
<li>Changed the "body" proxy component property for TQTXDOMApplication from a component, to a full blown widget. If you want to create widgets directly on the HTML body, you can use this as a parent. Changing this to a TQTXWidget also means you can easily access things like background, styles, check the width and height etc.</li>
<li>Added a new FormContainer: TQTXWidget property to TQTXDOMApplication, this is a proxy widget that will always represent the container where forms are housed. Different application models represents forms differently, and will have different layout rules for forms. This property simplifies access to the "viewport", regardless of application model.</li>
<li><strong>Added Touch delegates</strong>, these delegates can be found in <a href="http://qtx.dom.events/" target="_blank" rel="noopener noreferrer">qtx.dom.events</a>.touch.pas (Please note that you dont need to use these unless you explicitly need multi-touch support. Instead use the pointer-events and check the pointerType property to know if a user is operating with a mouse, pen or touch, and then implement your handling code thereafter).</li>
<li>Added the Touch delegates to the widgets in the RTL, these now show up the "add delegate" dialog for the form-designer</li>
<li>Added touch helper functions to TQTXDOMApplication, as well as the partial TQTXWidget class in various units</li>
<li>The qtx.dom.widgets.pas unit was getting rather big. Exported things like borders into it's own unit (qtx.dom.border.pas)</li>
<li>To speed up widget creation, borders and font objects are now created "on demand", meaning they are created when you first reference them. No point wasting CPU time creating a background object when it's not used</li>
<li>Refactored TQTXToolbar so that it supports vertical layout (!)</li>
<li>Rewrote the CSS for the toolbar so it takes height for both horizontal and vertical orientation</li>
<li><u><strong>Added support for ZOrder! </strong></u>Exposing the property ZOrder to TQTXWidget. ZOrder under HTML is a bit strange, since elements initially follow their elementIndex (a new widget is always topmost since it's appended to the parent, and thus ends up at the end of the child collection). ZOrder overrides this, which to be frank is quite confusing for Delphi developers (myself included). Default value is "auto", which in QTX means -1. So if no zindex has been assigned to a widget, it will return -1, which simply means "automatic".</li>
<li>Implemented ZOrder functions which simplifies sorting and working with ZIndex: GetZOrderHighestFrom(), GetZOrderBoundsFor(), GetZOrderStackFor(). These are used by the RTL to deal with ZOrder.</li>
<li>Re-implemented (experimental) BringToFront() and SendToBack() so they now use ZIndex rather than elementIndex. Please note that this is experimental at this point. I have tested this with the various example apps and it works fine, but there are bounds to be edge-cases where you might have to call BringToFront() in order to remap the zindex of child widgets. Consider this work in progress! You can turn this off by disabling the $IFDEF in qtx.dom.pas, EXP_ZINDEX</li>
<li>Added a new InstallViewPort() method to TQTXDisplay, so that an application model can use a different TQTXViewport class if needed</li>
<li><strong>Disabled older system to detect resize</strong>, which caused excessive calls to Invalidate() and Moved(). If you need automatic Resize() and Moved() calls, simply activate the ResizeObserver or MoveObserver, by calling their Observe() methods. When writing widgets you would call ResizeObserver.Observe() in ObjectReady(). This will then listen for mutation events in the DOM and call Resize() automatically whenever your widget has it's size changed. The MoveObserver works the exact same way.</li>
<li>Expanded TQTXDisplay with methods that performs the layout, StdLayout(). TQTXDisplay will organize it's children vertically, subtracting the height of any widgets you might have created there directly, and resize the viewport to cover the reminder. By isolating this logic in it's own procedure, different TQTXViewport than the default class (see InstallViewPort() above) can perform changes to the default layout regime if needed.</li>
<li>Implemented a new widget, TQTXDOMIFrame, which creates an IFrame element. Please note that this widget still needs work. When finished it will also expose a message channel for communication between "apps" or third party websites.</li>
<li>TQTXWindowElement, the baseclass for all TQTXWindow parts, now inherits from TQTXSyncWidgetContainer</li>
<li>TQTXWindow is now synchronized, since that works better when hosting external websites as the content</li>
<li>Added a new Window type, TQTXFrameWindow, which contains a TQTXDOMIFrame widget</li>
<li>Implemented a new application model, this is still being worked on, but you can find it in the test project "Windowing app", which is ultimately the desktop project I have been showing lately. This project also has an Amiga webassembly emulator -- make sure you open this project in the browser, as miniblink does not support WASM.</li>
<li>.. And much, much more!</li>
</ul>
<p>I could literally continue for at least 2 more A4 pages of changes and fixes, but the above list represents the biggest changes to the RTL so far.</p>
<h3>What to look out for?</h3>
<p>Since I have disabled the old resize system, which ultimately tied into BeginUpdate(), EndUpdate() and logging of changes between those two methods, <strong>some of your existing projects might be affected by this</strong>. The solution is to activate the ResizeObserver object in your widget ( a simple ResizeObserver.Observe(); will do).</p>
<p><strong>The ZIndex change is quite huge</strong>, in that our codebase has so far only dealt with ElementIndex (creation index) with regards to BringToFront() and SendToBack(). But so far I have not seen any dire consequences for this change. If your project is affected, you can turn off the ZOrder support by disabling the EXP_ZINDEX $IFDEF on top of the qtx.dom.widgets.pas unit.</p>
<p><strong>I have completely overhauled the theme.css file </strong>so it takes height for mobile platforms, <em>make sure you copy this into your existing projects!</em> Also replace the old default.theme.css in the themes folder with the new one!</p>
<h3>Download</h3>
<p>Backers can download from Patreon.com/QuartexNow as always!</p>
<div id="wpfa-1089" class="wpforo-attached-file"><a class="wpforo-default-attachment" href="//login.quartexdeveloper.com/wp-content/uploads/wpforo/default_attachments/1680405564-qtx02.png" target="_blank" title="qtx02.png"><i class="fas fa-paperclip"></i>&nbsp;qtx02.png</a></div>]]></content:encoded>
						                            <category domain="https://quartexdeveloper.com/community/latest-releases/">Latest Releases</category>                        <dc:creator>Jon Lennart Aasenden</dc:creator>
                        <guid isPermaLink="true">https://quartexdeveloper.com/community/latest-releases/major-rtl-update-released/</guid>
                    </item>
				                    <item>
                        <title>Build 0.17.3.3</title>
                        <link>https://quartexdeveloper.com/community/latest-releases/build-0-17-3-3/</link>
                        <pubDate>Sat, 11 Mar 2023 16:00:20 +0000</pubDate>
                        <description><![CDATA[This is a whopper of an update which brings in one of the final touches on the proverbial cake, namely theme styling from the inspector. I have also fixed a few bugs here and there, especial...]]></description>
                        <content:encoded><![CDATA[<p>This is a whopper of an update which brings in one of the final touches on the proverbial cake, namely theme styling from the inspector. I have also fixed a few bugs here and there, especially in the TQTXApplicationBoxed model, where for some strange reason the initial form was set to "not visible", causing all sorts of strange side effects such as not covering the entire client-region of the viewport.</p>
<p>I have also added two new fields to the build-config: pre and post execute, which allows you to pick a file to ShellExecute before running your application - and a file to execute after your application has stopped. This is very handy when you are writing visual apps that needs to talk to a node.js server or services. If you register the server with PM2, you can start and stop the server via "pm2 start/stop all" in these new fields.</p>
<p><strong>NOTE</strong>: <em>These fields are not yet activated! Since we are a few days behind I figured I would do an update now to get the theme stuff out, and then work like hell on getting another update out with the rest shortly.</em></p>
<p>And last but not least, I have moved much of the information that was cluttering up the form designer widgets, such as creation-order, widget type etc. into a sexy new THintWindow. This behaves more or less the same as Delphi. We also draw the widget glyph to this THintWindow to make it easier to visually match the type.</p>
<p>I wanted to get the package-preferences file activated (which was added in the previous build), but I ran out of time. I will have this done by the next update.</p>
<h3>Changelist for this build</h3>
<ul>
<li>Fixed issue where the initial form of a TQTXApplicationBoxed model did not cover the client-region of the viewport. This model creates an outer container (TQTXDisplay) which contains an inner container (TQTXViewport) which houses the forms. This enables us to scroll and clip form contents without bleeding out beyond the boundaries of TQTXDisplay.</li>
<li>Fixed issue with the WebSocketClient test project, where I had accidentally included a couple of node.js units in the DOM project causing havoc.</li>
<li>Fixed issue with TQTXDOMWebSocketClient where the OnMessage handler type was unknown. The unit was missing a reference to qtx.dom.messages.pas which containes the OnMessage event parameter type.</li>
<li>Introduced a new unit, qtx.dom.theme.pas, which now MUST be included in both project and form units. So if your projects refuse to compile, just add that unit to the uses clause.</li>
<li>Updated all template-files and projects so that new forms and projects includes the qtx.dom.theme.pas in their uses section</li>
<li>Added new field to the build-config: pre-exec. Added a select button that opens a file-selector dialog. You can pick between *.*, *.bat and *.exe directly. You can also manually type in a command, such as "npm start all". Whatever is typed in this textfield will be ShellExecuted (without waiting for the process to close!) before your project is run.</li>
<li>Added new field to the build config: post-exe. Same as above except this is executed after your project has stopped.</li>
<li>Fixed a focus problem when double-clicking on a form-file in the file overview. When the form-tab opens focus was not set to the designer. This was a simple one-liner</li>
<li>Updated the Assign() method for TQTXWidget so that it includes the theme values</li>
<li>Updated the Assign() methods for TQTXImage so it invokes it's ancestor and dont overwrite the theme border</li>
</ul>
<h3>To-Do at this point</h3>
<p>I wanted to get the sexy TRichView into this build, but I quickly realized that I need to play around with the package a bit before i start using it. TRichView is a highly polished and professional product with a ton of functionality. In order to do TRichView justice, and make it a natural feature for the QTX IDE, it has to be properly setup and applied. So I have pushed that a few weeks into the future.</p>
<ul>
<li>Last build we added support for package config files, which is a JSON file that the IDE looks for when opening zip-file packages. This is to "future proof" the package system a bit so that we can check for package dependencies and version conflicts, which is bound to happen quickly as people make their own packages. This file is checked for and loaded into the package objects the IDE manages, but we dont yet read from it. This obviously needs to be fixed.</li>
<li>In the preferences dialog we have a tab where we can assign a colorset to each filetype. This might be overkill to be honest, but either way it either has to be finished or removed. Finishing it is a matter of storing the name of the colorset the user has picked for that filetype. Nitpicky but useful.</li>
<li>The code-editor has a timer already in place for background compilation and maintaining the AST, but it lacks a bit of logic. In short, when you type anything there will be a small delay after you last pressed a key, and then the background compiler kicks-in and rebuild the AST automatically for you (see the IDE preferences dialog). This timer is there, but I need to finish the logic. This is not as straight forward as it might seem, since the IDE has to be smart enough to recognize if you are in the middle of something, like typing a property declaration that is not finished.</li>
<li>We are missing two options from the Ragnarok codegen, namely to emit a ready-to-rock DOM protocol client class, and also a node.js protocol object. The idea here is that you design your protocol (messages, fields, datatypes etc), and the IDE spits out a ready to use protocol object + message stack (keeps track of sent and received messages) and a message dispatcher. All you have to do is create a client or server object and assign that protocol - and it will run on whatever medium it might be (messages between worker, websocket, http/rest, UDP. Ragnarok abstracts the data from the medium).</li>
</ul>
<p>When this is in place, the IDE is as good as we can make it for version 1.0, and we can ship that while I immediately start creating new and cool project templates, demos that actually makes sense, and write documentation.</p>
<p><span style="font-size: 14pt">Download</span></p>
<p>Backers can download from <a href="https://www.patreon.com/QuartexNOW" target="_blank" rel="noopener">www.patreon.com/QuartexNOW</a> as usual</p>
<div id="wpfa-1025" class="wpforo-attached-file"><a class="wpforo-default-attachment" href="//login.quartexdeveloper.com/wp-content/uploads/wpforo/default_attachments/1678550420-qtx_01.png" target="_blank" title="qtx_01.png"><i class="fas fa-paperclip"></i>&nbsp;qtx_01.png</a></div>]]></content:encoded>
						                            <category domain="https://quartexdeveloper.com/community/latest-releases/">Latest Releases</category>                        <dc:creator>Jon Lennart Aasenden</dc:creator>
                        <guid isPermaLink="true">https://quartexdeveloper.com/community/latest-releases/build-0-17-3-3/</guid>
                    </item>
				                    <item>
                        <title>Build 0.17.3.1</title>
                        <link>https://quartexdeveloper.com/community/latest-releases/build-0-17-3-1/</link>
                        <pubDate>Tue, 28 Feb 2023 09:55:13 +0000</pubDate>
                        <description><![CDATA[More bugs squashed and a few omissions corrected in this build! I had somehow forgotten to allow for negative integer values in the property inspector, so that has been fixed -- and we now h...]]></description>
                        <content:encoded><![CDATA[<p>More bugs squashed and a few omissions corrected in this build! I had somehow forgotten to allow for negative integer values in the property inspector, so that has been fixed -- and we now have a package data model in place (but it needs to be activated, im working on this).</p>
<h3>What has changed in this build?</h3>
<ul>
<li>Property inspector now takes negative integer values (e.g -100)</li>
<li>Removed a menu item for "Save as" since that has no meaning with folder based projects (files can be renamed via the file overview)</li>
<li>The IDE now saves your preference for how the widget palette shows the widget glyphs (report or icons). Right-click on the component palette and select the view menu there.</li>
<li>Updated the compiler version we use so we finally have async and await keyword support.</li>
<li>Fixed a problem where DWScript emits two main() entrypoints. We now check the generated code, both compact (optimized for size) and normal, and remove the empty main() symbol.</li>
<li>Boxed application model is now there. Still need to fix a couple of hickups with the Display-View layout, but you can safely create boxed applications now (this is the type of app model best suited for mobile devices).</li>
<li>Fixed a few hickups in the TQTXDOMApplication object where I had used reintroduce rather than overload, causing mayhem in form navigation</li>
<li>HOTFIX: <span class="x193iq5w xeuugli x13faqbe x1vvkbs x1xmvt09 x1lliihq x1s928wv xhkezso x1gmr53x x1cpjm7i x1fgarty x1943h6x xudqn12 x3x7a5m x1f6kntn xvq8zen xo1l8bm xzsf02u"><span class="x193iq5w xeuugli x13faqbe x1vvkbs x1xmvt09 x1f6kntn xvq8zen xo1l8bm xzsf02u">A curious bug materialized when one of the backers tried to add a delegate to the main form, where each delegate always got the name "Delegate1". This turned out to be a simple mistake I had made, where the code checked delegates on child widgets, but somehow I had forgotten to check the container itself (sigh).</span></span></li>
<li>.. And several tidbits more!</li>
</ul>
<p>Backers can download the latest build from Patreon:</p>
<p><a href="https://www.patreon.com/posts/hotfix-build-0-3-79325234" target="_blank" rel="noopener">https://www.patreon.com/posts/hotfix-build-0-3-79325234</a></p>
<div id="wpfa-964" class="wpforo-attached-file"><a class="wpforo-default-attachment" title="qtx_01.png" href="//login.quartexdeveloper.com/wp-content/uploads/wpforo/default_attachments/1677578169-qtx_01.png" target="_blank" rel="noopener"><i class="fas fa-paperclip"></i> qtx_01.png</a></div>]]></content:encoded>
						                            <category domain="https://quartexdeveloper.com/community/latest-releases/">Latest Releases</category>                        <dc:creator>Jon Lennart Aasenden</dc:creator>
                        <guid isPermaLink="true">https://quartexdeveloper.com/community/latest-releases/build-0-17-3-1/</guid>
                    </item>
							        </channel>
        </rss>
		