Clarion Handy Tools

February 2019

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