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

September 12, 2020

CHT 2020 VERSION 24C.02.02
RE-RELEASE HIGHLIGHTS

ABOUT THE LATEST CLARION 11.0.0.13630

We have generated and compiled our HNDAPPS suite of demo apps and utilities using Clarion 11.0.0.13630 with complete success. No generate, compile or RUN-TIME errors at all.

Since you MAY also be installing Clarion 10, (many of you will) and the above comment pertains to Clarion 11, you may be interested to know that our templates now enable you to duplicate in C10 some of the functionality recently introduced to C11. This is available from the IDE's "Global Extensions" tab. Use our HNDSETUP.APP, for example, to explore this feature.

Click our global "AACHTControlPanel" Global Extension Template, and select the "Config" tab, then click the "Global Settings" wide-button from this Config tab. Finally, select the "EXP" tab. This stands for "EXPORT" file settings and has to do with compile-time construction of your executable by the Clarion compiler.

The "LARGE_ADDRESS" setting is there as before. That setting was introduced earlier this year, or late last year. We've added recently, the "FIXED" setting, the "DEP" setting and the "DYNAMIC_BASE" setting with this CHT release.

These last two settings (DEP and DYNAMIC_BASE) were recently introduced to C11, where they default to ON but may be turned OFF. "DEP" gives your apps an extra security level to protect them from intrusive data being processed in your application's address space at run-time, as if it were actual procedure code in your app. This feature is valuable, app-hijack protection.

The DYNAMIC_BASE setting makes your app run in a randomized, non-predictable address space such that it is more likely to run more quickly, when numerous instances of your app are required to run, as might be the case in C11 with SV's AnyScreen.

In our web servers, we always use a combination of LARGE_ADDRESS, DEP, and DYNAMIC_BASE, for extra robustness, security and speed. This capability is now available to CHT Clarion 10 users.

Our template stops you from setting "FIXED" and "DYNAMIC_BASE" at the same time since these are contradictory constructions. "FIXED" is un-toggled when DYNAMIC_BASE is set to "ON". "FIXED" makes for a slightly smaller .EXE that runs at a "FIXED" address space rather than at a "DYNAMIC" address space.

NOTE: It is not necessary to invoke the "DEP" and "DYNAMIC_BASE" settings from our template with Clarion 11, since C11 has its own settings for these on your app's "PROJECT" tabs, though duplicating these settings with your PROJECT setup has no ill effect.

"LARGE_ADDRESS" is recommended, as usual, to be set to ON also in your C11 applications, especially with servers and memory intensive apps. However, with Clarion 11 when your app is configured to DYNAMIC_BASE from the C11 IDE's PROJECT tabs, you must avoid using the "FIXED" setting provided on our template since that would override "DYNAMIC_BASE".

September 7, 2020

CHT 2020 VERSION 24C.02.00
BUILD HIGHLIGHTS

NEW FEATURE IN HNDFBACKBUILDER.APP

This application can now be called from another app with a command-line parameter, or from a template or from the DOS to produce a language-specific translation file (HNDCUSTOM.TRN) on request as follows:
• HNDFBACKBUILDER "french"  - Exports a french version of HNDCUSTOM.TRN
• HNDFBACKBUILDER "dutch"   - Exports a dutch version of HNDCUSTOM.TRN
The export file is placed in /accessory/libsrc/win/.

We have full translations from ENGLISH (Master) to FRENCH, DUTCH, PORTUGUESE, and POLISH. We have partial or in-development translations from ENGLISH to GREEK, SPANISH, AFRICAANS, ITALIAN, DANISH, GERMAN. Developers offering to perform translations of these language categories using HNDFBACKBUILDER.APP can earn a free 1 year subscription to our toolkit.

Two example apps (discussed below and delivered with earlier CHT updates) provide example non-English apps which are configured to use HNDCUSTOM.TRN instead of the standard HNDFBACK.TRN translation file. These apps, are called: hndsql2_french.app and hndsql2_dutch.app. The English version of these apps is called hndslq2.app. Remember to perform the appropriate export to French or Dutch as shown above, before compiling these non-English applications.

NEW APPLICATION HNDJUMPBENCH00.APP

This application produces for us, the source code from which we then generate the JUMP START procedure .TXAs which we include in your \accessory\hnd\txa\directory as part of our toolkit.

When we need to modify one of our 87+ JUMP START procedures, we IMPORT that JUMP START into a blank or partial application, such as this one, and then make our modifications. At which point, we then re-export the procedure as a .TXA with a unique name coded into JUMP START TEMPLATES file (HNDJUMP.TPW).

We are presently reviewing our JUMP START procedures, as we do periodically, with an eye to updating cosmetics such as colors, fonts, icons, and of course, improving functionality or removing shortcomings, as required to make them optimal for use in our users' applications.

Since there's no big secret to how these things are constructed and maintained, we thought you might be interested in seeing this process in action, both as a learning activity and a perhaps as a participatory exercise. This application, "HNDJUMPBENCH00.APP" and others to follow, with really creative names like "HNDJUMPBENCH01.APP", "HNDJUMPBENCH02.APP" etc. will eventually reflect a full set of procedures constituting the latest versions of our JUMP START PROCEDURES suite.

TWO NEW JUMPSTART PROCEDURE TEMPLATES

JUMPSTART LABEL: SMTP Configure (NET)
PROCEDURE NAME: JumpStartConfigureSMTPNET()
PROCEDURE DESCRIPTION:
This procedure lets the user configure your SMTP settings to the registry such that all portions of your app or system can recover them from there. Important elements of this, like the password, are stored encrypted.
SMTP VIA: HNDNETSMTP.DLL (CHT Toolkit DLL)

JUMPSTART LABEL: SMTP Send With Attachments (NET)
PROCEDURE NAME: JumpStartSMTPSendProcedureWithAttachmentsNET()
PROCEDURE DESCRIPTION:
This procedure provides SMTP send capabilities, using basic SMTP defaults. Send parameters Smtp Server, To Address, From Address, Subject, Body and Attachment to this procedure or embed constants or variables for these values directly into the procedure.
SMTP VIA: HNDNETSMTP.DLL. (CHT Toolkit DLL)

TWO REVISED JUMPSTART PROCEDURE TEMPLATES

JUMPSTART LABEL: SMTP Configure
PROCEDURE NAME: JumpStartConfigureSMTP()
PROCEDURE DESCRIPTION:
This procedure lets the user configure your SMTP settings to the registry such that all portions of your app or system can recover them from there. Important elements of this, like the password are stored encrypted.
SMTP VIA: CLARUNSMTP.DLL (Clarion Enterprise Only)

JUMPSTART LABEL: SMTP Send With Attachments
PROCEDURE NAME: JumpStartSMTPSendProcedureWithAttachments()
PROCEDURE DESCRIPTION:
This procedure provides SMTP send capabilities, using basic SMTP defaults. Send parameters Smtp Server, To Address, From Address, Subject, Body and Attachment to this procedure or embed constants or variables for these values directly into the procedure.
SMTP VIA: CLARUNEXT.DLL (Clarion Enterprise Only)

RE-INSTATED DEMO APPLICATION - HNDSCHOOL.APP

This is a CHT demo re-built with CHT templates on ABC demo application SCHOOL.APP; hence the name HNDSCHOOL.APP.

Its purpose is to study the use of the SQLite driver with CHT browses, and query templates set to UseSQL=True. We chose to "CHT-ify" this application specifically because it uses several SQLite data tables located in a repository file called SCHOOL.SQLITE.

A second purpose is, of course, to provide some visual and functional contast between a raw, wizard-produced, vanilla-ugly and semi-functional, ABC application and ABC applications extended, enhanced and functionalized by a variety of CHT templates.

To analyse the allocation of templates in this application, open the application in the Clarion IDE and navigate to Global Extensions, select AACHTControlPanel and click on the menu item "Templates By Proc". This sequence of actions triggers an HTML document to display that then enumerates and names all templates used in the application by procedure.

We chose to apply, as always, our "minimalist" screen design which avoids unnecessary use of tab controls, and shuns MDI child windows. Control buttons are for the most part kept to the toolbar and when placed on a window are always above the edit fields or list box.

This application applies, for the most part, CHT's browse extension template HandyMarkerBrowse (HMB). However, one procedure utilizes ListBoxBrowseExtender (LBX) which illustrates that an underlying ABC browse is no longer necessary to build fantastic Clarion browses. LBX browses are the bright future of data browsing with Clarion, ABC browses are the clunky past.

IMPORTANT: When this HNDSCHOOL.APP demo was first released in 2016, we also released a document called "About Using SQLite With Clarion". This document is still linked on our website at the url shown below. It discusses the "pro" and "con" of using a Clarion-based SQLite implementation. We suggest you read this document while having a look at our re-instated version of HNDSCHOOL.APP.

DOCUMENT URL:https://www.cwhandy.ca/hndaboutusingsqlite.html

While SQLite is making regular technical advances, it is still not a true "Client-Server" level data source, that provides seamless remote data access.

However, it can ACTUALLY BE MADE TO WORK THAT WAY TODAY using Clarion 10 or Clarion 11 with the help of CHT Client/Server templates (included in the standard CHT Toolkit).

In our "What's New" Page, dated August 11th, we describe two applications called hndppllbx_remote.app and hndppllbx_server.app. Read and test these apps to see what CHT Templates and Classes can do to make your applications perform wonders across the WAN or the INTERNET, regardless of the data tables underlying the application.

In a near-future CHT release, we plan on giving you a two-piece Client Server version of HNDSCHOOL.APP along the lines of these hndppllbx_remote.app and hndppllbx_server.app examples. At that time we'll re-write the SQLite paper linked above.

IP BLOCKING MECHANISM Further Advanced

This 24C.02.XX build now includes a data table of researched IP addresses that are reputed, by our own experience and reasearch, to be abusive.

Our server templates can optionally have your CHT server read this table into memory via the "Server Safety" switch, and block the IP from connecting to your server.

The data table is called "CHTBLOCKIPDEFS.TPS". You can see it in use on our demonstration servers, for example, HNDSLFSV.APP, HNDSLFSVFX.APP and others.

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