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

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