Clarion Handy Tools

February 2019

February 22, 2019

Minor Update 23A.01.01 Released

The CHT Version number stays at 23A.01.00 with this update for both C10 and C11. The installer shows this as 23A.01.01 in order to distinguish this download from the Feb 11, release of 23A.01.00.

Updater Revised to 23A-220219

CHTSETUPC10.EXE/CHTSETUPC11.EXE have been revised to (23A-220219). This one provides a "Check" button on the second screen beside the "Install" button.

The CHECK button contacts our server to see if a newer version updater is available. You have the option of choosing "Yes" to obtain the newest version updater or "Ignore" to skip, for now, the updater-download step and to proceed with installation using the current version updater.


In the C11 Version (last update of 23A.01.00) the HNDTPLBKC11.DLL was missing from HNDSETUPC11_1.HZO. FWIW, the installation containers for C10 and C11 are approx 90% the same, but not quite.

The primary differences appear in Container CHTSETUPCXX_1.HZO, which contains binaries (.EXE's and .DLL's) and in container CHTSETUPCXX_4.HZO which contains .APPs and .DCTs. All of our C11 Clarion-source binaries are compiled at our end with C11 and all of our C10 Clarion-source binaries are compiled here, with C10. And, of course, all of our source apps are compile-tested in the Clarion version for which they're intended, while C11 .DCT's are specific to the C11 IDE. We ship the correct .DCT's for each of our Clarion versions, even though the DCT names may be the same.

Clarion Menu Addins Are Back

Two .addin files that were shipped with all CHT installations from Clarion 7 onward are now again in your CHT C10-C11 versions after a brief period of not being included. They've been modified to reflect our current changes in support documents and utility applications. Addin files are located by our installer into CXX\accessory\addins\. The names are "accessorymenu.addin" and "clarionhandytools.addin". They appear as menus automatically when you start C10 or C11. Access the menus they create as follows:


Example Application HNDTESTEXCEL.APP

We've re-instated a demo application called HNDTESTEXCEL.APP and have added examples of exporting .XLS spreadsheets to .CSV as well as importing .CSV to be saved as .XLS.

This application comes with several test files: PEOPLE.XLS, and PEOPLE_IMPORT.CSV.

Several new functions were added into the HNDEXCELCLASS. These are called: HEXCEL.OpenCSV() which opens a comma delimited .CSV file, as well as function HEXCEL.SaveAsCSV() which provides an option to export and save to different CSV formats. The application contains commentary and example code to show how export and import are accomplished.


Example Application HND2.APP Is Back

We've also re-instated a demo application called HND2.APP which illustrates mostly CHT's ExplorerBrowse template with which all of you are familiar. However this application contains a procedure called HandyQueryProcessLimiterEXCEL() with which we illustrate creating an export file, to .XLS from a .TPS data file using CHT's HandyQueryProcessLimiter template. The procedure provides an option to export in TAB delimited format or COMMA delimited format.



This procedure is how we created the PEOPLE.XLS and PEOPLE_IMPORT.CSV files for the application discussed above, (i.e. HNDTESTEXCEL.APP). Note that what you see when opening a tab-delimited .XLS file or a comma-delimited .XLS appears to show different outcomes. Tab-delimited .CSV exports show spreasheet columns correctly even when they are direct exports from a Clarion application. HND2.APP illustrates how to use our HandyQueryProcessLimiter template to perform either type of data export to EXCEL.

CHT Clarion Project Builder Utility Configuration

Anyone wishing to test-compile our shipping demo and utility apps using HNDCMP.EXE, our "Clarion Project Builder Utility" using the test job file we've provided, (HNDCMPC10.TPS or HNDCMPC11.TPS), located in \accessory\hnd\ please make sure you've configured HNDCMP.EXE before you attempt this, particularly the "Target Paths" and "Post-Compile" tabs. By the time you read this we will have posted a web page with screen shots and commentary on how we configure HNDCMP.EXE to our requirements we'll link that new page, for you from our DOCS page at




February 11, 2019

BUILD UPDATE 23A.01.00 Released

CHT's Version number was advanced to 23A.01.00 from 23A.00.00 today. The following sections will review in brief some of the changes and improvements in this intermediate update.

HNDCUSTOM.TRN - Translation File

Developers who use their own custom versions of HNDCUSTOM.TRN (the user custom translation file) should use HNDFBACKBUILDER.EXE to merge their HNDCUSTOM.TRN file with our English HNDFBACK.TRN, after updating to 23A.01.00. This will not affect your translations in any way, but it will merge any missing variables not now in your personal HNDCUSTOM.TRN. Use the menu sequence "Functions"->"Update-Merge with English File", followed by the export process described below.

Some sharing developers have provided us with translations in the following languages: FRENCH, PORTUGUESE, DUTCH, POLISH. Any of these can be "Exported" to HNDCUSTOM.TRN from HNDFBACKBUILDER.EXE with the following menus sequences:
1: -- ** "Functions" ->"Export to TRN"
2: -- ** "Functions" -> "Install .TRN to Clarion Compile Area"

CHT Class Dialog Icons And Colors

Many CHT templates in this update now provide full control of dialog icons and screen prompt colors in windows and dialogs inside the CHT classes.

For example, HNDCONFG.CLW has 8 pre-built configuration dialogs that present windows for configuration of HTTP, FTP, MAIL, and so on. An application worthy of study that uses several of these CHT class based configuration dialogs is HNDSETUP.APP.

The template EmbedHTTPFunctions (which derives HNDCONFIG) provides an ICON and prompt color dialog where these HNDCONFIG configuration dialogs can be customized with a user-selected icon and screen prompt color. The use of this dialog, triggers CHT global template ApplicationImagesEx to checkbox (ON) any selected icons and link them into the application.



In the same HNDSETUP.APP application, the CHT Query Builder can be popped up. This query builder is contained in CHT class HNDQueryBuilder (HNDQBINF.INC, HNDQBINF.CLW)and provides a dialog window which can be customized, with icon and screen color selections from the CHT Template called: EmbedHNDQueryBuilderFunctions (i.e. second tab "Icons + Color"). This dialog, as explained further below, interacts with CHT template ApplicationImagesEx by setting check boxes ON, when Icons are selected in this EmbedHNDQueryBuilderFunctions template.



The icons being requested, are configued on CHT Global template ApplicationImagesEx.Use of an icon in another part of your app, by say, EmbedHNDQueryBuilderFunctions, checks the image, in ApplicationImagesEx for linking into your application.


ApplicationImagesEx (AIEX) manages and tracks images that are linked into your application from one of our templates. It even tracks images that the developer has personally placed on application windows. All default and "suggested" images shown on the various AIEX dialogs can be changed and saved for recall in other applications.

HandyMarkerBrowse (HMB), ExplorerBrowse (EXPB) and ListBoxBrowseExtender (LBX)now incorporate icons (for example in CHT's pop-up query builder) as defined on the "Internal" Tabs of ApplicationImagesEx. Required icons here are checked by one of these templates, and marked for inclusion (linking) into the app. Developers are encouraged to see the checked icons in the pop-up query builder. Icons on the ApplicationImagesEx templates "Internal" Tabs can be changed and saved as a recallable standard configuration by the developer who can recall that configuration in other procedures or in other applications.

ListBoxBrowseExtender Additional Features

We have also fully revised ListBoxBrowseExtender (LBX) template to generate a listbox FORMAT() string that configures directly from the template, these items are: icons, tool tips, column width, data pictures, query binding, data alignment, column header alignment, column colors and sort-order column colors, Listbox AT(x,y,w,h) and even column tooltips.

CHT's ListBoxBrowseExtender template can now easily replace ABC browses AND give developers the ability to create both local-data or remote-data ISAM or SQL browses in their applcations.




The LBX template, also interacts with CHT's ApplicationImagesEx template to ensure that icons configued on your browse columns are automatically linked into your application as already explained above.

Two LBX Procedure Templates

An existing procedure template called: ListBoxBrowseExtenderClientServerBrowse (LBCSB) was tweaked so as to be even more automatic. It places the LIST control at the bottom of the Window structure where a new FORMAT string generated by the template can be more easily pasted over it.

Design Tip

A design tip we suggest when building browse windows that are easily resizeable, is to keep your browse control in the bottom portion of your procedure window and all other user controls above the browse list box. By doing this, your browse listbox can easily be resized, stretched or shrunk with the window, by a CHT template called "ResizeHandles", automatically populated by this LBCSB template.

A new Procedure template called: LBXClientServerBrowse (LBXCB) was added this build. This template introduces different LBX-related templates to the browse window created by it. This template too, is able to create both LOCAL DATA and REMOTE DATA browses using as its basis, ListBoxBrowseExtender (LBX).

A new Control template called LBXBrowseProcessButton (LBXPB) was added. This template can send a queue of selected records from LBX to a process where the process can operate on the list box selected queue records and interact with the file to modify as per the purpose of that procedure (See HNDBULKSMTPMAIL.APP).

In this example app selected subscriber records are sent to the email process where an email is sent to only the selected browse record(s).



LBX Example Applications Provided
With This 23A.01.00 Update


The dictionary for this app is HNDO.DCT, the local data table is HNDO.TPS.

The remote data access procedures contact our sample server at, Port 80, the user password for this is Gus123.

This app's opening screen is HTML requiring a file we supply with this build called: 000hndpeople_lbx_nopics$$$.html it is located in CXX\accessory\hnd\html\.



(See: ListBoxBrowseExtenderSortOrderFieldFilter procedure where template SortOrderFieldFilter_LBX has been improved to deal unprompted with CONTAINS searches on date fields based on the column date picture.)

Also illustrates automatic inclusion and display of column icons and tool tips directly from the LBX template. The app dictionary included is HNDLBXDM.DCT, the data file included is HNDLBXDM.TPS.



In this application we adjusted detection of success due to changes in Microsoft's SignTool.EXE success output string. LBX browses are also now in use in this app. The application uses HNDUDQ.DCT to define LBX data queues on its browses.



This is a key utility in our suite of CHT Toolkit Utilities, used to configure and manage automatic backup of your applications and dictionaries as you work on them.

This application uses several LBX browses to display disk directories and the files inside a zip. It now uses a dictionary called HNDUDQ.DCT to define queues for LBX disk-file browses.

The DLL that accompanies this app is HNDNETZIPPER.DLL. This DLL was updated to NET Framework 4.5 which is compliant for COM registration in all newer NET Frameworks through to Windows 10. HNDNETZIPPER.DLL uses built-into-Windows libraries to achieve its compression capabilities, i.e. System.IO.Compression.

The DLL is installed to the application by CHT template EmbedNetZipFunctions. Configure any of your apps for auto-backup from CHT Template AACHTControlPanel-> Global Settings -> Backup Tab.



This application provides a great way to experiment with HTML bulk mail.

HNDBULKSMTPMAIL.APP has been switched to LBX browses from the HMB browses used in its previous version. The application uses a dictionary to define both the data tables and disk file formats being displayed in its LBX Queue.

The dictionary for this app is HNDBLKML.DCT. The data file for this app is HNDBLKML.TPS. The app uses the following CHT Snap-Ins: CHTSNAPEDIT.EXE, CHTPREVIEWER.EXE, HNDXML2HTMLGEN.EXE. The app also requires 000CHTRECEIPTRED.XML and 000CHTRECEIPTBLACK.XML provided in \accessory\hnd\xml\.

Snap edit will find these automatically when you click on the menus provided. The generated HTML from these XML files (when you click the preview menu in CHT Snap Edit) is placed in \accessory\hnd\html\. The send procedure will open in this directory to let you pick up any .HTML file for insertion into the send window. Text files can also be picked up the same way, from a \accessory\hnd\txt\ directory but you will need to create a text file to place here.



This applicaiton illustrates 4 different ways on one procedure how to:
• Fill From File,
• Fill From View,
• Fill by Embedding,
• Fill By SQL Select

The required subcomponents, such as images, XML and HTML files, DCT files, required by these applications have been included in the APPS container HNDSETUPC10_04.HZO The dictionary for this app is: HNDACCES.DCT. The data table for this application is NORTHWIND.MDB located in CXX\hndapps\mdb\northwind.mdb below the application directory.



This example application uses the same DCT and data file as HNDLBXSQL.APP. Different query controls are illustrated on the LBX browses in this HNDLBXSQLEX.APP.

Using CHT Clarion Project Builder

If you want to try HNDCMP.EXE (Clarion Project Builder Utility) load the file CXX\accessory\hnd\HNDCMPCXX.TPS, click "Select All" (toolbar checkbox icon) followed by the "Compile Selected Items" button (toolbar lightning bolt).

The apps in HNDCMPCXX.TPS constitute the latest set of \HNDAPPS\ provided with the C10 and C11 builds. We provide these apps both as part of our utility apps set, as well as examples, proof, and test benches for a variety of CHT templates and classes.



HNDCMP.EXE for C10 and HNDCMP.EXE for C11 are separate executables placed by our installer into CXX\accessory\bin\ below your ClarionXX version.

They are identical except for the fact that each was compiled by the Clarion version it was meant to serve. The global template AACHTControlpanel -> Registry Locations setting provides for these applications to store their version specific settings in different registry locations, so as not to clash with one another.



Many CHT developers, based on the questions we get, have barely scratched the surface when it comes to understanding and utilizing the many features and benefits of using the CHT tool kit.

February 1, 2019

** Friday, February 1, 2019 **




Contact Us

If you have any thoughts or impressions to share, feel free to get back to us via email using the hot link provided here.

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

Click To Contact Us