CHT (Clarion Handy Tools)
Templates, Classes, Utilities, Apps, Projects

AUG 21, 2021

Build 25C.03.00 - UPDATE INFORMATION

CHT TEMPLATES FOR TYPE 1 SERVERS

We removed a bunch of templates, mostly Jumpstarts having to do with CHT TYPE 1 web servers. These servers are the sort that rely heavily on JAVASCRIPT in the construction of a web page.

Since we introduced our CHT XML2HTML concepts of web page creation, Javascript is GONE, GONE, never to return to our CHT web server implementations.

TYPE 1 Server templates are being replaced with TYPE 2, TYPE 3, and TYPE 4 server template implementations.

So, TYPE 1 Servers, for the present no longer exist, as a category. We'll re-focus and re-introduce this server category in upcoming CHT templates to create a server type similar to an example application called HNDTYPE4UCRSERVERTEMPLATES.APP.

If you want to know more about what our CHT XML2HTML techniques look and act like, in the form of a useful, interactive web browse, visit the following weblink: CHT Templates Browse

The weblink above, displays a Clarion-produced browse, that operates nicely on any size device, a phone, a tablet, a desktop, on any operating system with any browser. The server application operating from this URL is, in fact the CHT example application called HNDTYPE4UCRSERVERTEMPLATES.APP named above.


HNDBRWCL.EXE Client Interim Revision

This "CHT Utility Application", HNDBRWCL.EXE is an interim replacement for the previous application, of the same name, while we develop a CHT XML2HTML version of our forum, data-interactive web server.

The CHT toolkit has evolved away from HTML techniques that rely heavily on external libraries of any kind, specifically Javascript libraries and CSS libraries.

HNDBRWCL.EXE has for 15 years or more, been a client that dislays interactive pages issuing from a CHT Type 1 Web Server. That is, a server which delivers data wrapped up in Javascript objects incorporating formal 3rd party Javascript libraries and 3rd party CSS (Cascading Style Sheet) libraries.

Since 2019 we've been creating our own self-contained HTML pages using only CHT tools. These pages use no Javascript or external CSS libraries. The pages are generated by Clarion applications using a technique we developed called CHT XML2HTML (all rights reserved).

Presently, 100 percent of our website pages are created by ourselves using only CHT applications built with our tool kit or accompanying our toolkit, accessing web servers also of our own creation using only Clarion, plus the CHT toolkit.

In 2020 we began to purge from the CHT templates and classes all code using TYPE 1 server techniques. This purge-the-old, replace-with-new work continues to this day.

With the release of this interim "News" application, still called HNDBRWCL.EXE, we make a final break with the TYPE 1 Data Interactive Web Server as it has been for many years and make official our intention to develop a replacement forum application based solely on our CHT XML2HTML techniques.

The "Type" column in this browse links to other CHT XML2HTML documents interactively, to display template-specific documentation for any item clicked.

No Javascript here, no external CSS, just pure data-interactive HTML generated by CHT applications using CHT templates and classes.

CLARION 11.1 SOME BUG FIXES HAPPENING

We reported earlier that there were some serious bugs in Clarion 11.1 that we had to work around. Since the release of Clarion 11.1.13758 we were able to adjust some CHT class code to remove at least a few of these Clarion 11.1 workarounds.

For example in C11.1 we found that adding a callback function to the window in order to intercept and act on certain window events such as EVENT:CloseWindow and EVENT:LoseFocus, caused a GPF.

It was discovered that Clarion 11.1 was disposing window callback classes before the EVENT:WindowClose event was issued. This "bug" has since been "fixed" in Clarion 11.1.13758 and we were able to adjust our C11.1 class code back to what it is in C91, C10 and C11.

AUG 1, 2021

Build 25C.02.00 - Newest HTTPS Installer/Updater [Ver 7.0]

NEWEST HTTPS INSTALLER/UPDATER [Ver 7.0]

Our latest "multiple-version-installer", [Ver 7.0] is able to install any or all of our CHT Clarion 10 version, CHT Clarion 11 version or our CHT Clarion 11.1 version and now a backward compatible Clarion 9.1 version.

We know from the variety of CHT downloads happening in the last month, that many of you are installing CHT to multiple Clarion IDE's located on your development computer(s). More power to you if you're doing this and you have found some new advantage, opportunity, or convenience by doing this.

We keep a suite of 120 or more CHT applications compiling separately, at different times, on each of our Clarion IDE versions using a copy of HNDCMP.APP (compiled with the target IDE version). This is our Clarion-Version compatibility check. It points us to template and/or class differences required for a given IDE version. We incorporate these different requirements into the templates and classes directly such that all 4 Clarion IDE's use EXACTLY the same set of CHT templates and EXACTLY the same set of Clarion classes.

Using /ConfigDir=

We keep our various IDE versions self-referencing their uniquely configured CLARIONPROPERTIES.XML and other IDE configuration settings files, by using the /CONFIGDIR= startup options on the Clarion.exe command line or Clarion.exe startup icon's Target folder setting.

Clarion command line examples: (Your personal Clarion-version root directories will differ from our examples.)

c:\c91\bin\Clarion.exe /Configdir=c:\c91\data\options
c:\c10\bin\Clarion.exe /ConfigDir=c:\c10\data\options
c:\c11\bin\Clarion.exe /ConfigDir=c:\c11\data\options
h:\C111\bin\Clarion.exe /ConfigDir=h:\c111\data\options

Unless you do this, your various Clarion IDE versions will share a global copy of the "ClarionProperties.XML" and other configuration .XML files like "Clarion-Tools.XML". This global configuration directory chain is located at for example:

c:\Users\NAMEHERE\AppData\Roaming\SoftVelocity\Clarion\10.0
c:\Users\NAMEHERE\AppData\Roaming\SoftVelocity\Clarion\11.0
c:\Users\NAMEHERE\AppData\Roaming\SoftVelocity\Clarion\9.0

This global config does not, as near as we can tell, distinguish between DOT versions, for example, between 11.0 and 11.1 nor between 9.0 and 9.1. And clearly it is not able to distinguish between two separate but identical copies of the IDE located on two separate drives nor in two separate install directories.

By using the /CONFIGDIR= option on all of your Clarion.EXE startup command lines, you gain full and individual control over the configuration of each and every IDE instance that you may be running.

SAY "HELLO AGAIN" TO CLARION 9.1

The latest version of our installer CHTHTTPSSETUP.EXE [Ver 7] includes a menu that enables the installation of CHT for Clarion 91 to be performed in a manner identical to other Clarion versions C10, C11, and C11.1.

This uses the current [latest] set of templates and classes as they exist for C10, C11, and C11.1. It also includes the latest versions of our utility apps and demo apps as they exist in C10, C11 and C11.1.

To our surprise, there's little obvious difference between C91 and C10 other than the .DCTs are not directly compatible. We were able to restore from our archives (though not in all cases) the C91-compatible dictionaries. In some cases where the .DCT's for the C10 apps had been modified or expanded or improved from the earlier C91 DCT's we were able to export the .DCTs to TXD from the C10 IDE and import them directly into C91-compatible DCT's from .TXD - all with no loss of GUID values such that the C10 apps compiled flawlessly in the Clarion 9.1 IDE using the newly minted C91 dictionaries.

REINSTATED EXAMPLE APPLICATION: HNDSPLITTERTEST.APP

This application demonstrates a CHT class called HNDSplitter (HNDSPLITTER.INC/.CLW) and three related templates: EmbedHNDSplitter, HandySplitBarHorizontal and HandySplitBarVertical.

The EmbedHNDSplitter extension template is applied to the procedure first. This is the parent of the two related control templates. Then HandySplitBarVertical and HandySplitBarHorizontal can be applied as required by the developer.

This example has applied the ABC resizer to allow window and control resize. The EmbedHNDSplitter template allows for optional interaction with ABC resizer. The default setting is to disable this ABC resizer interaction. When ABC resizer is enabled, it's up to the developer to apply that template to the procedure and configure it to their liking.

UPVERSIONING AND DOWNVERSIONING CLARION APPS

The CHT global equate ClarionVersion is given a new value of 91 when your Clarion project is compiled with Clarion 9.1. While we were at it, in anticipation of further backward compatibility work, we've roughed in also ClarionVersion equates for Clarion 9 and even Clarion 8.

COMPILE('CLARIONVERSION111',_CWVER_=11100)
ClarionVersion EQUATE(111)
CLARIONVERSION111

COMPILE('CLARIONVERSION11',_CWVER_=11000)
ClarionVersion EQUATE(11)
CLARIONVERSION11

COMPILE('CLARIONVERSION10',_CWVER_=10000)
ClarionVersion EQUATE(10)
CLARIONVERSION10

COMPILE('CLARIONVERSION91',_CWVER_=9100)
ClarionVersion EQUATE(91)
CLARIONVERSION91

COMPILE('CLARIONVERSION90',_CWVER_=9000)
ClarionVersion EQUATE(90)
CLARIONVERSION90

COMPILE('CLARIONVERSION8',_CWVER_=8000)
ClarionVersion EQUATE(80)
CLARIONVERSION8

As you all know, the Templates and Classes that we have been shipping for C10, C11 and C11.1 are identical. This continues with our down-version port to Clarion 91.

The templates and classes contain version specific chunks of code that kick in conditionally when the currently running Clarion version IDE and compiler are in use. Some of that version specific behavior in the CHT classes is controlled by the "ClarionVersion" equate shown above. From inside the template language we are also able to detect the currently running Clarion Version and to trigger version specific code generation where necessary.

We keep a suite if approx 110+ apps incorporating and illustrating our templates and classes in various situations. These apps act both as a test of code viability, and as well, they provide proven examples of how we ourselves use the toolkit.

Every service we provide on our website and in our toolkit is based inevitably on a Clarion application.

** Our web servers are Clarion applications (source examples provided)

** Our toolkit installer(s) are Clarion applications (source examples provided)

** Our numerous Clarion IDE support utilities are Clarion applications
(exact source provided)

** Our HTML pages are created with an XML to HTMl cross interpreter
written in Clarion (exact source provided).

** Our toolkit installation containers are .TPS files and are
created and updated using a Clarion application (exact source provided).

** Our toolkit uploader toolkit app is a Clarion application
(exact source provided).

We decided recently, at the suggestion of two CHT subscribers, to see if we could reproduce 100% of the functionality that we provide in C10, C11 and C11.1 with C9.1. At first we though this idea would be a waste of time. Who still uses 9.1 anyway? But then who are we to judge? Besides, it was a challenge we couldn't resist.

In fact, it turned out to be a fairly simple exercise to get our 100% up to date CHT toolkit working in C9.1. And to compile the exact same apps copied over from C10. (We do all our work still in C10 and simply copy it across to the other Clarion versions for extensive testing).

Since the apps we currently distribute have evolved significantly since C10 went gold, and C91 was set aside, we sure as heck didn't want to re-evolve those old C91 apps through 6-7 years (or more) of evolution to bring them to the state that CHT demo apps are at presently.

It turns out the .APP file for C9.1 is structurally compatible with C10, C11 and C11.1 apps but the .DCT, and .SLN files are not compatible. We're all used to having the next newer version of Clarion convert our .DCT and .SLN files upward. But, in this case, we needed to down-version the .DCT and .SLN files not up-version them.

.SLN and .CWPROJ files are generated automatically when you open an app with these files missing so this is automatic. Nothing to do there.

Down-versioning the .DCT was also pretty easy, though less automatic. Create a blank DCT with the correct name for C91 after first exporting to .TXD from C10 the .DCT requiring conversion. Then import into the empty C91 dictionary earlier exported .TXD file. This creates a dictionary compatible to the C91 IDE loading the app.

In no time we had all 110+ utility and demo applications running in C91. For two weeks or so we've been testing and re-testing with CHT project builder parallel to C10, C11, and C11.1 to make sure they all compile, run and perform identically using C91 as they do in C10, C11 and C11.1.

And they do!

This proves once again, something we've said very nearly from the beginning, that apps created with ABC + CHT templates (only) are readily ported from one IDE version to the NEXT. Now we've proven that even the reverse is true. Apps can be down-versioned as well to the PREVIOUS IDE.

All going as planned, there may be down-versions of CHT for C9.0 and perhaps C8 as well. Though we'll wait and study the user-base reaction to this latest build release. Just because we "can" do something, doesn't mean we should, except that an exercise in down-versioniong offers a unique opportunity to re-evaluate portions of class and template code that perhaps might have been done better.

We hope you realize that our latest [Ver 7] installer provides you with the ready capability of installing CHT to multiple, independent versions of the same Clarion IDE on the same machine.

Why is this important? Well, with more than one installed instance of your favorite Clarion IDE(s) you're more likely to vary the template set(s) registered to that IDE. We encourage you to reserve at least one of those IDE instances for pure ABC with CHT (only) and you learn to shed some of the unnecessary dependencies in other 3rd party stuff that may be impeding your personal Clarion development.

Cheers...
Gus M. Creces
gcreces@cwhandy.ca
Aug 1, 2021

Contact Us

Click the link below to contact us by email.
It will start your email client with our email address inserted:

Click To Contact Us