Clarion Handy Tools ™ 
Templates•Classes•Utilities•Projects
Applications•Online

MAY 2022

Build 26B.00.00
Now Released

Changes In 26B.00.00

EmbedWindowFunctions
Template

This template will now automatically populate on all window procedures from CHT Global template ApplicationImagesEx.

The presence of EmbedWindowFunctions on a window procedure makes visible quite a number of CHT Control and Extension templates that otherwise might not have been visible unless you manually inserted the template on your window procedure beforehand.

ProcedureImagesEx
Template

This template always self-populated on your window procedures from our global template ApplicationImagesEx. But wait, some of you never actually bothered to go to the ApplicationImageEx template to enable it. So, in effect, it did nothing on your application because while disabled, ApplicationImagesEx does not auto-populate ProcedureImageEx.

As of the last build update, 26A.01.00, ApplicationImagesEx is fully enabled by default. There is no longer a "Disable" setting on this template. This continues of course, in 26B.00.00. We have however, given you global control over the three local settings being exercised on the window procedure by ProcedureImagesEx.

While ProcedureImagesEx is now present on your window procedures you still can fully control from our global ApplicationImagesEx template, which of the three outcomes listed below is excercised locally.

ApplicationImagesEx and ProcedureImagesEx have styling effects (images, fonts, and colors) on your application windows using the following rules-of-thumb.

• ProcedureImagesEx can pass through global styling from ApplicationImagesEx

• ProcedureImagesEx can provide local-window styling on its template interface

• ProcedureImagesEx can skip doing anything about styling, images, fonts and colors

Two New Templates

CHTAddGlobalsFirstControl
CHTAddGlobalsFirst

There are two new templates, "CHTAddGlobalsFirstControl" (Control Template) and "CHTAddGlobalsFirst" (Extension Template). These two templates are guideposts, effectively, since their sole purpose is to appear alone in the IDE's control and extension template selection dialogs when you do not yet have our global master template "AACHTControlPanel" and its associates installed.

So let's assume you have an application in which there are no CHT templates of any kind installed.

Poking around, you open the Extension Templates selection dialog looking for any CHT extension templates. All of our Extension Templates, as of this March 9th update, are invisible to any app which does not have AACHTControlPanel installed. If that condition applies, the only Extension Template you will see from CHT is: "CHTAddGlobalsFirst". Template instructions are below.

Poking around some more, you open a window and want to add CHT Control Templates to your window. All of our Control Templates, as of this March 9th update, are invisible to any app which does not have AACHTControlPanel installed. If that condition applies, the only Control Template you will see from CHT is: "CHTAddGlobalsFirstControl". Template instructions are below.

In previous builds, all local control and extension templates which were dependent on AACHTControlPanel, ApplicationImagesEx and HandyVersionResource, would simply install these three required global templates into the app for you in the background, as soon as you installed any local template from the Extensions Selection Menu or from the Control Templates Selection Menu.

Work Smarter Not Harder

That was introduced as a convenience for developers following the old Clarion adage "work smarter not harder". The idea was, that any template which is dependent on other, higher order, templates simply installed those higher order global templates for you first, automatically. Before installing itself.

The problem with that "easy peasy" approach is that it only IMPLIES and doesn't DEMAND that the developer go first to the higher order, global template interface to configure THAT, before proceeding with the implementation of the local Extension or Control Template being added, and which to varying degrees, has dependencies in the correct configuration and setup of the higher order template to which it connects.

So, the whole point of "CHTAddGlobalsFirst" and "CHTAddGlobalsFirstControl" is to draw attention to the fact that the correct use of MOST CHT TEMPLATES in your app is dependent on THREE CHT GLOBALS --FIRST-- being present in your app, --SECOND-- being configured to certain minimum requirements.

The text instructions on "CHTAddGlobalsFirst" and "CHTAddGlobalsFirstControl" point out the need to deal with "AACHTControlPanel", "HandyVersionResource" and "ApplicationImagesEx" BEFOREHAND.

CHTAddGlobalsFirst
Template

This is the only CHT EXTENSION TEMPLATE that displays in the CLARION EXTENSIONS SELECTION list from the IDE when CHT Global template AACHTControlPanel and its associates, are missing from your Application.

And while "CHTAddGlobalsFirst" template does offer to include all required CHT Global templates into your application automatically, those auto-added templates still need to be configured FIRST.

It is therefore recommended that rather than using this "CHTAddGlobalsFirst" template when it appears in the IDE extension selection list, that you cancel out at that point and proceed instead to your application's "Global Extensions" area to select "AACHTControlPanel" and include it into your app.

Three other required CHT Globals are added to Global Extensions by inserting AACHTControlPanel. These are: "AACHTControlPanelClose", "ApplicationImagesEx", and "HandyVersionResource".

Three of these four CHT Global templates require a degree of pre-configuration. See the CHT Help file CHTTEMPLATES.HTML or CHTTEMPLATES.PDF and search for the template names given above.

CHTAddGlobalsFirstControl
Template

This is the only CHT CONTROL TEMPLATE that displays in the CLARION CONTROL TEMPLATES SELECTION list from the IDE when CHT Global template AACHTControlPanel and its associates, are missing from your application.

And while "CHTAddGlobalsFirstControl" template does offer to include all required CHT Global templates into your application automatically, those auto-added templates still need to be configured FIRST.

It is therefore recommended that rather than using this "CHTAddGlobalsFirstControl" template when it appears in the IDE extension selection list, that you cancel out at this point and proceed instead to your application's "Global Extensions" area to select "AACHTControlPanel" and include it into your app.

Three other required CHT Globals are added to Global Extensions by inserting AACHTControlPanel. These are: "AACHTControlPanelClose", "ApplicationImagesEx", and "HandyVersionResource".

Three of the four CHT Global templates added require a degree of pre-configuration. See the CHT Help file CHTTEMPLATES.HTML or CHTTEMPLATES.PDF and search for the template names given above.

This update adds some significant color control to all of our CHT browse templates:

Explorerbrowse, HandyMarkerBrowse, ListBoxBrowseExtender.

To see CHT browse templates in action in any of our example applications:

ExplorerBrowse:
HNDISAMPOPFAVEXPB.APP, HNDSQLEXPBQRY.APP, HNDSQLPOPFAVEXPB.APP.
HNDACCES.APP,HNDSQL1.APP, HNDSQL3.APP, HNDSQL1_SEA.APP, HNDIPLOCKER.APP

HandyMarkerBrowse:
HNDISAMPOPFAVHMB.APP, HND3.APP, HNDACCES.APP, HNDSQL2.APP
HNDSQL2_DUTCH.APP, HNDSQL2_FRENCH.APP,
HNDCMP.APP (CHT Compile Manager), HNDTESTSMTPJS.APP

ListBoxBrowseExtender:
HNDLBXDM.APP, HNDLBXSQL.APP, HNDLBXSQLEX.APP, HNDPEOPLE_LBX.APP,
HNDTPLREGISTRY.APP, HNDPPLLBX_REMOTE.APP (Client) (Server = HNDPPLLBX_SERVER.APP)
HNDCLIENTCL.APP, (Client)(Server = HNDCLIENTSV.APP)

Sort Column Color Dialog

The "Sort Column Color" dialog (identical on all three templates) introduces a "Selection Row Back Color" feature which gives you control over the selection row background color from our template.

From this dialog now you can control:
•  Column text or background color
•  Selection row background color
•  Header bar background color
•  Header bar text color

As before, the "Reverse" switch setting causes the sort column to "reverse" the color applied in #1 above. The text and background colors are swapped.

And, as before, you can save your settings applied on one procedure and recall them into another procedure. To experiment, you can "Insert CHT Default Colors" as a starting point.

HandyVersionResource
Template
Recently Added Feature

We've made the "Developer Set Version Configuration" optionally readable from the CHT Configuration file created by our installer in your BIN directory.

These config files are: HND91TPL.INI, HND10TPL.INI, HND11TPL.INI or HND111TPL.INI, depending on which Clarion version you happen to be using, and they are located in your /accessory/bin/ directory.

Watch our Journal Video called: "HandyVersionResource Template Review" to get the background on how this works.

The new "Developer Set Version" switch called "Read Version Number From Config", if checked, reads the version number you've inserted into the Config file at app generate time. Turn this switch off to maintain a fixed, version specific to the app you are working on.

Default for this "Read Version Number From Config" setting is OFF.

Example Values
From HNDXXTPL.INI
CHT Config File

Below are example entries touched by HandyVersionResource. The entry read by the "Read Version Number From Config" switch being checked, is "FIXEDVERSION=" shown below. The other settings are discussed in the video. Any further questions, drop a question on the CHT Forum using our pre-compiled forum app HNDCLIENTCL.EXE.

Contact CHT

Contact CHT