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

TEMPLATES BY CATEGORY (ALL TIERS)
(BUILD: 28A.01.00)

(TIER-1) AACHT CONTROL PANEL
** aachtcontrolpanel **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: AACHT CONTROL PANEL
SCOPE: (TIER-1)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CHT(Clarion Handy Tools)

AACHTControlPanel template is a CHT Global Control Panel.
Populating any single CHT template causes this "supervisory" template to appear automatically in the global extensions area of your application. From this interface you can adjust global CHT settings used by other templates in our suite.
AACHTControlPanel also provides useful "state-of-your-application" reporting features. The following global templates are designated as children of AACHTControlPanel, and as such, you must select AACHTControlPanel, before child templates become visible for inclusion in your application.
Child templates are: AACHTControlPanelClose, INIFile, VblFileNames, ApplicationImagesEx, HandyVersionResource, HandyNTServiceFunctions HNDCMPControlPanel, ExportClassesByName, ExportClassesByCategory, and FieldLevelValidationCode.
AACHTControlPanel generates and controls a number of equates and compiler pragmas that are important for the proper functioning and linking of our classes into your application. For this reason, all CHT templates check for the existence of this template in your application and re-populate it if it is removed.

** aachtcontrolpanelclose **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: AACHT CONTROL PANEL
SCOPE: (TIER-1)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

AACHTControlPanelClose template is a partner to AACHTControlPanel and is designed to run last, when all other CHT templates on the application have fully generated. It handles gen-completion details that are best handled when the latest version of the app has fully generated, for example, application backup, when CHT AutoBackupConfigurator has been enabled.

This template will attach itself automatically to applications in the same way that AACHTControlPanel does, whenever any other CHT template is inserted into your application. Applications with AACHTControlpanel already attached will not automatically back-attach this template. While it is not mandatory that this template be present, it may be added to an existing CHT application manually.

If the "Verbose Mode" switch is checked, this template produces a template variables inspection file which can be used to check for CHT or Clarion IDE configuation problems resulting from such things as trying to work with 2 or more installations of Clarion 10 on the same hardware.

** applicationimagesex **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: AACHT CONTROL PANEL
SCOPE: (TIER-1)
CLASSES: None
PARENT: AACHTControlPanel
  

DESCRIPTION:

©CLARION HANDY TOOLS

ApplicationImagesEx establishes global level application-wide styling settings including wallpapers, icons, colors, fonts and common control properties. All globally applied application settings established here, may be overridden on the "extensions" menu of your window procedures on a child template called ProcedureImagesEx. ApplicationImagesEx provides several "stylesheet" interfaces that, when completed, may be saved to a "master configuration" which can then be read into other applications.

Aside from reducing the drudgery of having to style (wallpaper, icons, colors, fonts, common control properties) on every window in every app, ApplicationImagesEx helps to make your application suites stylistically consistent. While applications can be "style-frozen" to make them unique from the master configuration, developers can, by simply "Recalling" the master configuration stylistic settings it can immediately be restyled to the currently configured standard.

ApplicationImagesEx can track the images used in your application, list them in a special IMAGES file, and even copy images scattered around your drive to the standard images directory or to a directory provided on the template. This makes the task of moving an application to another machine really easy since the images it uses are all in one place.

ApplicationImagesEx can be made to control display settings such as fonts, colors, charset, button styles, prompt styles, entry field background color, and more.

ApplicationImagesEx includes and makes available the icons required when the EmbedWindowFunctions template implements CHT extended menus. This template, can if necessary, be disabled so as to eliminate any stylistic impact it has on your application while still supporting other CHT templates that from-time-to time require it's services for other than stylistic reasons.

ApplicationImagesEx is a child of global template AACHTControlPanel. It is installed automatically to the global extensions area by AACHTControlPanel.

ApplicationImagesEx also includes an optional global switch which when set, causes the template to generate code @!for Clarion-Style extended menus in all application windows, not just the FRAME window. The ABC templates provide only for extended (colored) menus in the master FRAME window.

As of Build 26A, ApplicationImagesEx has removed the Global disable switch it had for many years. The intent of that switch was to give developers control over application styling with a global on/off setting. Since many developers never even bothered to visit the ApplicationImagesEx interface, they weren't able to take advantage of application styling, of application-wide font, and color consistency, of image control, and more recently powerful browse and window gradient styling. All along, full control of individual window styling was there for them to use.

** fieldlevelvalidationcode **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: AACHT CONTROL PANEL
SCOPE: (TIER-1)
CLASSES: None
PARENT: AACHTControlPanel
  

DESCRIPTION:

©CLARION HANDY TOOLS

FieldLevelValidationCode global extension template allows you to insert field-specific validation or update code into the ABC module that handles field level validation. The ABC file class calls into this validation code before any record is written to the disk, so you can be assured that dictionary-based code will execute before the data table to which it is attached is added to or updated.
HOW TO INSERT DICTIONARY CODE:
In the dictionary "Options" tab for a your data table, supply a new property called VALIDATIONx, where "x" is a value 1 - 9. You may include up to 9 different validation entries per data table. Then, supply three values for this property, organized into separate entries delimited by a comma and a carriage return. The entries must be provided in the following order:

1) Name of the field to validate - Includes field prefix.
2) The field code itself - Standard Clarion code.
3) A comment - Explains what the code does.
The following example is used in several CHT demonstration applications: PEO:SessionID, PEO:SessionID = RANDOM(100,999) & '-' & TODAY() & '-' & CLOCK(), Inserts a unique value whenever a record in this table changes.
See HNDO.DCT, People Table for an example.
FieldLevelValidationCode is a child of master global template AACHTControlPanel and as such, must be installed to the global extensions area by first installing AACHTControlPanel and inserting with that template selected.

** inifile **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: AACHT CONTROL PANEL
SCOPE: (TIER-1)
CLASSES: HNDIni HNDError
PARENT: AACHTControlPanel
  

DESCRIPTION:

©CLARION HANDY TOOLS

INIFile extension extends the capabilities of the ABC IniClass.

** Developers can optionally establish an alternative INI file for app configuration settings written by CHT templates and classes.

** Developers can optionally establish an application INI file that's tied to the name of the application exe, such that when the exe is renamed, even after compilation, the INI takes on the new name of your exectuable file.

** Developers can optionally override the directory location of the application INI file as configured on the ABC global properties dialog.

** Developers may optionally redirect all application configuration I/O that would normally go to an INI file or to the Windows Registry into a dictionary table provided by the application itself. This functionality works in conjunction with another CHT template called INITableIOProcedure which must be created first, and selected on this template interface. It also populates a child template (with no user interface) to all of the procedures in your application. The child template writes code into your Frame procedure in order to reference the frame window and frame thread to two global HNDIni Class properties.

As a result you are able to set messages to the frame window status bar with a call to HIni.SetFrameWindowStatus(). Events can likewise be posted from any procedure in your application to the frame window accept loop with HIni.PostFrameWindowEvent(). This template also provides optional "Run Once" capability. If your application is already running on a given computer, subsequent attempts to run it can be short circuited. See the "Run Once" button elsewhere on this template's interface.

INIFile is a child of global template AACHTControlPanel and as such, must be installed to the global extensions area by first installing AACHTControlPanel and inserting with that template selected.

** inifileprocedure **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: AACHT CONTROL PANEL
SCOPE: (TIER-1)
CLASSES: None
PARENT: INIFile
  

DESCRIPTION:

©CLARION HANDY TOOLS

INIFileProcedure extension is auto-populated by a global CHT template called INIFile. It has no local, procedure-level interface and requires no configuration. It only generates code into your Frame procedure in order to reference the frame window and frame thread to two global HNDIni Class properties.

As a result you are able to set messages on the frame window status bar with a call to HIni.SetFrameWindowStatus(). Events can likewise be posted from any procedure in your application to the frame window accept loop with HIni.PostFrameWindowEvent(). This template also provides optional "Run Once" capability. If your application is already running on a given computer, subsequent attempts to run it can be short circuited.

** initableioprocedure **

  
VERSION: 28A.01.00
TYPE: PROCEDURE TEMPLATE
CATEGORY: AACHT CONTROL PANEL
SCOPE: (TIER-1)
CLASSES: HNDSourceProcedure
PARENT: HandySourceProcedure_TS
  

DESCRIPTION:

©CLARION HANDY TOOLS

IniTableIOProcedure template builds a procedure that when hooked into the CHT template called HNDIni will redirect all ABC IniClass Puts, Gets and Removes, and all CHT HNDIni Class Puts, Gets and Removes to a dictionary table designated by the developer.
While this requires no code to be written by the developer it does require a dictionary table modelled on INITable found in various CHT example dictionaries such as HNDSQL1.DCT and others. The field names are not required to be the same, but the field data types must be. And at least one key must be provided on the ULONG type UNIQUE field which is given a hash value of several inputs to assure uniqueness based on the user signed in.
This template is a child of HNDSourceprocedure_TS, and inherits all of the prompts and interfaces of that parent procedure.

** procedureimagesex **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: AACHT CONTROL PANEL
SCOPE: (TIER-1)
CLASSES: None
PARENT: ApplicationImagesEx
  

DESCRIPTION:

©CLARION HANDY TOOLS

ProcedureImagesEx extension allows overriding of the global wallpaper and icon settings put in place by the global version of this template: ApplicationImagesEx. You may select new images or remove the defaults. Template property dialogs on this template are enabled only on procedures with windows.
Options on this template provide the following setting choices:
"Apply Global Styles On This Window?" - Global settings from ApplicationImagesEx are passed through.
"Enable Local Styles On This Window?" - Local, procedure specific, styles from ProcedureImagesEx are applied.
"Skip Styles Settings On This Window?" - No styles are applied to this procedure by ProcedureImagesEx.
The parent template ApplicationImagesEx allows developers to globally enforced which of the three above options is applied by ProcedureImagesEx. Otherwise, ProcedureImagesEx defaults to "Apply Global Styles On This Window?".
Finally, individual ProcedureImagesEx instances (one per window procedure) may be locked out from the influence of ApplicationImagesEx with the "Lock this ProcedureImagesEx instance" setting.
This template has been extended with one "CODE-TAB" that enables the developer to insert custom hand-code before and after the code normally generated by this template, without triggering the "EMBED CODE" icon on the procedure name.
As is the case with all CHT "CODE-TABS", leaving any one, or all code field text boxes blank, causes the template to do nothing with the blank field(s). So leaving any of the template fields blank has NO impact on your application. Developers can determine if their code appears in the correct place within the procedure's code stream by temporarily embedding an easily recognizable comment and searching for it using the code EMBEDITOR.

** vblfilenames **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: AACHT CONTROL PANEL
SCOPE: (TIER-1)
CLASSES: None
PARENT: AACHTControlPanel
  

DESCRIPTION:

©CLARION HANDY TOOLS

VblFileNames extension template creates global file property variables for some (or all) tables it finds in your dictionary. Variables can be created for these dictionary properties on the "General" tab: Driver Options, Owner Name, and Full Pathname. It lets you set the default contents of these variables right in the dictionary and it provides several unique settings to indicate how the variables are to be initialized at run time.

See HNDO.DCT and HND2.APP for an example of this. VblFileNames is a child of master global template AACHTControlPanel and as such, must be installed to the global extensions area by first installing AACHTControlPanel and inserting with that template selected.

(TIER-1) APP HELP SUPPORT
** hndlistapplicationtemplates **

  
VERSION: 28A.01.00
TYPE: UTILITY TEMPLATE
CATEGORY: APP HELP SUPPORT
SCOPE: (TIER-1)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

HNDListApplicationTemplates template generates a list of templates used in your application, a structured HTML list we call an "Application Templates Schematic". The list is organized by procedure and includes all templates populated on your procedures, whether of origin CHT or not.
CHT provides such a list for all of its demonstration applications, recallable from the "About" menu. Subscribers can generate a list for themselves for any application from the AACHTControlPanel Template's "Templates By Procedure" dialog.

** handyapplicationdocs **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: APP HELP SUPPORT
SCOPE: (TIER-1)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyApplicationDocs template helps the developer to globally document his application. The information entered generates as viable HTML via the application discovery functionality available on CHT's global template AACHTControlPanel. CHT's Compile Manager can generate HTML application discovery pages into a CHT server directory configured on its settings dialog. CHT's HNDTEAMDOCSERVER.APP acts as a project documentation server available to develoment team members.

** handyhelpfilefetch **

  
VERSION: 28A.01.00
TYPE: CODE TEMPLATE
CATEGORY: APP HELP SUPPORT
SCOPE: (TIER-1)
CLASSES: None
PARENT: EmbedWindowFunctions
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyHelpFileFetch code template helps you to make a Help Request to your website. Call up and display, almost any kind of local or remote file, HTML, PDF, TXT, MP4 (video) from your server or network to display some information for your users. We use HTML and PDF instead of traditional help files. Training videos are great too! Windows will start the correct app to deal with the file based on it's known extension.
This template is a child of CHT template EmbedWindowFunctions, and as such that template must be applied to your procedure first, before this one can be added. Note that EmbedWindowFunctions is also a child template with it's own, pre-requisites.
Demonstration application: HNDCONTROLTPLS.APP

** handyhelpmessagebox_ewf **

  
VERSION: 28A.01.00
TYPE: CODE TEMPLATE
CATEGORY: APP HELP SUPPORT
SCOPE: (TIER-1)
CLASSES: None
PARENT: EmbedWindowFunctions
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyHelpMessageBox_EWF code template helps you to compose a detailed help message box, useful for pop-up instructions.
This template is a child of CHT template EmbedWindowFunctions, and as such that template must be applied to your procedure first, before this one can be added.
Note that EmbedWindowFunctions is also a child template with it's own, pre-requisites.

** handyhelpwhatsnew **

  
VERSION: 28A.01.00
TYPE: CODE TEMPLATE
CATEGORY: APP HELP SUPPORT
SCOPE: (TIER-1)
CLASSES: None
PARENT: EmbedWindowFunctions
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyHelpWhatsNew code template helps you to make a What's New Help Request to your website.
This template is a child of CHT template EmbedWindowFunctions, and as such that template must be applied to your procedure first, before this one can be added.
Note that EmbedWindowFunctions is also a child template with it's own, prerequisite parent, global template ApplicationImagesEx.

** handyproceduredocs **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: APP HELP SUPPORT
SCOPE: (TIER-1)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyProcedureDocs template helps developers to document their procedures on an individual basis. The information entered generates as viable HTML via the application discovery functionality available on CHT's global template AACHTControlPanel.
CHT's Compile Manager can generate HTML application discovery pages into a CHT server directory configured on its settings dialog.
CHT's HNDTEAMDOCSERVER.APP acts as a project documentation server available to develoment team members.

** viewclasses **

  
VERSION: 28A.01.00
TYPE: UTILITY TEMPLATE
CATEGORY: APP HELP SUPPORT
SCOPE: (TIER-1)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

ViewClasses template pops up the ABC Class Viewer built into the Clarion IDE. The CHT Project Builder uses it to display the ABC Class Viewer directly from the Compile Manager interface without having to open any application.

** visitbrowsecolumn_ewf **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: APP HELP SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDWindow
PARENT: EmbedWindowFunctions
  

DESCRIPTION:

©CLARION HANDY TOOLS

VisitBrowseColumn_EWF control enables a weblink in one of your browse columns. The browse may be any ABC browse or any CHT-template-extended browse. It requires that the EmbedWindowFunctions template be placed on the window first. Clicking the browse column enabled by this template starts your default Internet browser - when a valid URL is found in the row being clicked - enabling you to jump to the web site found there. It shares an embeddable instance of the HNDWindow Classes.
This template is a child template of CHT EmbedWindowFunctions and as such, that template must be present before this one can be added.

(TIER-1) APP VERSIONING
** handyversionresource **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: APP VERSIONING
SCOPE: (TIER-1)
CLASSES: None
PARENT: AACHTControlPanel
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyVersionResource global application extension template incorporates standard version information into your executable.
It generates an "application.version" file which is linked into the EXE, DLL or LIB. Company name, Copyright, Trademark, Version Number, Build Number, File Information, Language, Locale and custom information are included.
This template also interacts with AACHTControlPanel's Version dialog - which produces application constant HPROP:AppVersionEX - to synchronize the version element of the HPROP:AppVersionEX as version values change on this template.
HandyVersionResource is a child of global template AACHTControlPanel and as such, must be installed to the global extensions area by first installing AACHTControlPanel and inserting with that template selected.

(TIER-1) BROWSE SUPPORT
** abcbrowserecordtaggerex **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: BROWSE SUPPORT
SCOPE: (TIER-1)
CLASSES: BrowseClass(ABC)
PARENT: Browse(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

ABCBrowseRecordTaggerEx extension template inserts event driven code that results in one-click, on-off record tagging for your generic ABC browse.
Data record fields in the primary file can be toggled on and off with a single click on the column and row where the designated field is populated (hot key configurable).
NOTE: For multiple ABC browses on the same window that require tagging, the developer should populate a separate instance of this template for each browse, each attached to the specific browse to be serviced.
This template is a child of Browse(ABC), and as such that template must be present before this one can be applied to the procedure.

** activelinkbrowsecolumn_ewf **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: BROWSE SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDWindow
PARENT: EmbedWindowFunctions
  

DESCRIPTION:

©CLARION HANDY TOOLS

ActiveLinkBrowseColumn_EWF control enables an active startup link in one of your browse columns. The browse may be any ABC browse or any CHT-template-extended browse. It requires that the EmbedWindowFunctions template be placed on the window first.
When a valid Web-Url is found in the row being clicked, clicking the browse column enabled by this template starts your default Internet browser enabling you to jump to the web site found there.
Similarly when a valid Email-Address is found in the row being clicked, clicking the browse column enabled by this template starts your default email client, enabling you to create an email message to the address found there.

Finally, when the correctly pathed name of an executable is found in the row being clicked, clicking the browse column enabled by this template starts (runs) that application similarly to starting the application from a menu.
This template shares an embeddable instance of the HNDWindow Classes. This template is a child template of CHT EmbedWindowFunctions and as such, that template must be present before this one can be added. Example application HND3.APP procedure Demobrowse2 - find a column with an HTTP link or email address link in the address column.

** browselazydisplay **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: BROWSE SUPPORT
SCOPE: (TIER-1)
CLASSES: None
PARENT: BrowseBox(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

Multiple browses populated on the same window tend to flicker when the browse window first opens and each browse receives a reset during initialization. BrowseLazyDisplay template applied to ONLY ONE of your browses will temporarily slow the DISPLAY() function long enough to smooth out this effect.
BrowseLazyDisplay template is a child of BrowseBox(ABC). In other words, it can only be applied to an ABC Browse. EXAMPLE APPLICATION: HND2.APP.

** greenbarabcbrowse **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: BROWSE SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDGreenBar
PARENT: BrowseBox(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

GreenBarABCBrowse template adds the same greenbar features available in CHT browse extension templates ExplorerBrowse, HandyMarkerBrowse, LocatorOverRideControl and ListBoxBrowseExtender without implementing the wide array of other features. The base template used is a standard ABC Browse.
Application HND2.APP has an example procedure named DemoBrowse1().

** handycolumnhider **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: BROWSE SUPPORT
SCOPE: (TIER-1)
CLASSES: None
PARENT: BrowseBox(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyColumnHider extension attaches to any standard ABC browse and enables it with column hide and unhide capability. Click the browse header with a hot key designated here and a list of browse columns is presented. Use the "Unhide" menu to unhide a column, and the "Hide" menu to hide a column.
NOTE: This template is not designed to be used with any other Clarion Handy Tools browse enhancement template. A "pure" ABC browse is required. Other CHT browse enhancement templates already contain this capability natively.
Example Application: HND2.APP, procedure DemoBrowse1().

** handyfilequeuebuildera **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: BROWSE SUPPORT
SCOPE: (TIER-1)
CLASSES: None
PARENT: Window(ABC), Report(ABC), Process(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyFileQueueBuilderA template builds a queue based on file (table) definitions in your dictionary. Drop it on any procedure that has tables defined in the procedure tables schematic.
To generate a queue based on table fields, complete the "File/Queue Information tab by selecting the fields that should be populated to your queue. A queue created by this template can be used with CHT template ListBoxBrowseExtender to build a fully functional queue based browse independent of any ABC browse templates.
Note that the template now warns you that local variables are not permitted to be placed into the queue. This template also works with ABC Source procedures.

** handyfileviewbuilder **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: BROWSE SUPPORT
SCOPE: (TIER-1)
CLASSES: None
PARENT: Window(ABC), Report(ABC), Process(ABC) Browse(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyFileViewBuilder template builds a view based on file/table definitions in your dictionary. Drop it on any procedure (Browse, Process, Report, Window) that has tables defined in the procedure tables schematic. To generate a view based on table fields, complete the "File/View Information" tab by selecting the fields that should be populated to your queue.
A view created by this template can be used with CHT template FileLoadBrowseExtender in combination with HandyFileQueueBuilder and a CHT method called SQLFillQueueFromView() to build a fully functional, SQL queue-based browse independent of any ABC browse templates.
HandyFileViewBuilder template now also works with ABC Source procedures.
"CODE-TABS" have been added to allow the insertion of procedure CODE into the PROCEDURE code AREA and several TABs all from the template interface rather than inside the procedure from the EMBEDITOR. All template generated methods are provided with "CODE-TAB"s.
To determine if a given "CODE-TAB" will drop your code where it's needed, experiment first, by dropping a comment followed by opening the EMBEDITOR and searching for your comment.
Example Application: HNDTYPE4SERVERPEOPLE.APP

** refreshabrowse **

  
VERSION: 28A.01.00
TYPE: CODE TEMPLATE
CATEGORY: BROWSE SUPPORT
SCOPE: (TIER-1)
CLASSES: None
PARENT: BrowseBox(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

RefreshABrowse code template assists with posting a refresh command to any ABC Browse.

** setsqlaliasestofileprefix **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: BROWSE SUPPORT
SCOPE: (TIER-1)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

If you are sending a raw SQL query generated by having posted a CHT-style query in a browse or on a window holding a QPFC control the tables will be addressed with a prefix equivalent to the file prefix defined in the dictionary.
For example: CUS:Company will be named CUS.`Company` or CUS.Company This template will apply the same aliases - as defined in your dictionary - to the tables in your procedure.

(TIER-1) BROWSE SUPPORT HMB
** handymarkerbrowse **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: BROWSE SUPPORT HMB
SCOPE: (TIER-1)
CLASSES: HNDMarkerBrowse
PARENT: BrowseBox(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyMarkerBrowse template automatically gives your ABC browse extended characteristics such as Windows-style record marking with Shift-click for marking ranges, Ctrl-Click for toggling and Single-Click for marking individual records. Full keyboard-only marking support is also provided.
SUMMARY OF KEYSTROKES USED FOR IN-QUEUE RECORD MARKING
** MouseLeft
Mark record in single record mode.
** ShiftMouseLeft
Mark end of range between selected and current row clicked.
** CtrlShiftMouseLeft
Continues marking from selected to current roe clicked.
** CtrlMouseLeft
Toggle record marked/unmarked.
** CtrlSpace
Same effect as CtrlMouseLeft.
** ShiftUp
Mark next record up from selected.
** ShiftDown
Mark next record down from selected.
** UpKey
Switch to single record mode and move cursor up.
** DownKey
Switch to single record mode and move cusror down.
** CtrlUp
Move cursor up with no marking or unmarking.
** CtrlDown
Move cursor dn with no marking or unmarking.
** ShiftPgDn
Mark all from selected to top of current page.
** ShiftPgUp
Mark all from selected to end of current page.
** ShiftHome
Mark all from selected to first record.
** ShiftEnd
Mark all from selected to last record.
** HomeKey
Unmark all and select first record.
** CtrlHome
Unmark all and select first record.
** EndKey
Unmark all and select last record.
** CtrlEnd
Unmark all and select first record.
** PgUpKey
Unmark all and select last record on page.
** PgDnKey
Unmark all and select first record on page.
** CtrlA
Select all.
** CtrlH
"H" how many selected.
----------------------------------------------------------------

The template adds "Explorer-like" features to your browses including column-header-click sort orders, reverse sortation and more.

Several accessory controls HandyMarkerBrowseLocatorControl, HandyMarkerBrowseLocatorControlEx, QueryParsingFilterControl, PopFavoriteQueries_HMB, HandyMarkerBrowseOneColumnQueryControl, HandyMarkerBrowseQueryGoButton, HandyMarkerBrowseReportButton, HandyMarkerBrowseRowMoveButtons, HandyMarkerBrowseSetsControl HandyMarkerBrowseProcessButton, HandyMarkerBrowseProcessLimiter, HandyMarkerBrowseReportLimiter easily add sophisticated record locating and filtering, attach processes and reports passing them marked records for processing or printing.

This template is capable of redirecting all INI/IO to the Windows registry or into an application data table. In order to implement this INI/IO feature you must populate CHT global template INIFile by first selecting CHT Global AACHTControlPanel and inserting the INIFile template.

HMB EXAMPLE APPLICATIONS: The CHT toolkit uses HMB browses more than any other so there are numerous examples. A favourite of ours is HNDCMP.APP.
"CODE-TABS" have been added to this template to enable developers to insert code into the HMB.Start() method at PRIORITY(20) and also at PRIORITY(6000). Code tabs left blank (no code inserted) are ignored and have no impact on the procedure.

** handymarkerbrowselocatorcontro... **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: BROWSE SUPPORT HMB
SCOPE: (TIER-1)
CLASSES: None
PARENT: HandyMarkerBrowse
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyMarkerBrowseLocatorControltemplate creates a companion locator control for HandyMarkerBrowse browses. It can locate on any field in your browse including unkeyed fields and fields in joined tables. This template is a child template of CHT HandyMarkerBrowse and as such, that template must be present before this one can be added.

** handymarkerbrowselocatorcontro... **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: BROWSE SUPPORT HMB
SCOPE: (TIER-1)
CLASSES: None
PARENT: HandyMarkerBrowse
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyMarkerBrowseLocatorControlEx template creates a companion locator control for HandyMarkerBrowse browses. It has all of the features of HandyMarkerBrowseLocatorControl plus some extended features including a GO button and the ability to blank the browse when the locator is in filter mode (setting passed up from HandyMarkerBrowse) and the locator is empty. When the locator is in "Drill-Down" mode, a "breadcrumbs" display control provides the contents of the composite query either in CHT query language or in raw SQL depending on the contents of the display control provided.
The locator control can locate on any field in your browse including unkeyed fields and fields in joined tables. Options are provided to force selection of either the locator or the browse after a locate is performed and after a browse order change is applied.
The template display string will now optionally display SQL syntax for the WHERE clause in the case of UseSQL=True. This template is a child template of CHT HandyMarkerBrowse and as such, that template must be present before this one can be added.

** handymarkerbrowseonecolumnquer... **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: BROWSE SUPPORT HMB
SCOPE: (TIER-1)
CLASSES: None
PARENT: HandyMarkerBrowse
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyMarkerBrowseOneColumnQueryControl control provides a query control attached to a single column in your browse, report or process to produce a STARTSWITH or CONTAINS filter which limits the returned data based on the value typed into the control. Several instances of this control template may be used in combination to provide a multi-column filter. This control works with ISAM or SLQ implementations.
SEE: HNDACCES.APP for an SQL example procedure using this template. Remember that this template does not have its own GO button to execute the query as it's used most often in combination with other instances of itself. The GO button is populated separately once you have one or more instances of this template populated. That addon to this template is called HandyMarkerBrowseQueryGoButton.

** handymarkerbrowseprocessbutton **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: BROWSE SUPPORT HMB
SCOPE: (TIER-1)
CLASSES: None
PARENT: HandyMarkerBrowse
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyMarkerBrowseProcessButton template creates a button that starts an ABC process after copying the marked records in your HandyMarkerBrowse to a local queue identical to the browse queue and referencing it to a global reference variable called GLB:HNDMarkerCopyQ which is always visible to your process.
This template is a child template of CHT HandyMarkerBrowse and as such, that template must be present before this one can be added.

** handymarkerbrowseprocesslimite... **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: BROWSE SUPPORT HMB
SCOPE: (TIER-1)
CLASSES: HNDExport
PARENT: Process(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyMarkerBrowseProcessLimiter extension works in combination with CHT Template HandyMarkerBrowse to limit the records touched by any ABC Process template to those selected in the browse at the time the process procedure is called. It contains a number of built-in capabilities:
1 - Export to a text file
2 - Export to HTML
3 - Bulk delete
4 - Bulk record modification
5 - Bulk append to another file
Export functionality used by this template is provided by the CHT Class HNDExport.

** handymarkerbrowsequerybuilderc... **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: BROWSE SUPPORT HMB
SCOPE: (TIER-1)
CLASSES: None
PARENT: HandyMarkerBrowse
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyMarkerBrowseQueryBuilderControl template creates a companion Query Builder control for CHT HandyMarkerBrowse. It can query on any field in your browse including unkeyed fields and fields in joined tables as long as they are either displayed on the browse or declared in the "Query Hot Fields" dialog provided by the HandyMarkerBrowse template.
Two display controls are included, each of which displays a different version of the query. The CHT: display control displays the CHT query language version of your query.
The SQL: display control displays the SQL query language version of your query if your browse is set to "Use SQL", otherwise the Clarion query language version of your query is displayed. One or both of these display controls may be deleted from your window if you do not wish to display the current query.
Multiple copies of this control may be used on the same window, attached separately to multiple ExplorerBrowse instances on that same window. HandyMarkerBrowseQueryBuilderControl is a child template of CHT HandyMarkerBrowse and as such, that template must be present before this one can be added.

** handymarkerbrowsequerygobutton **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: BROWSE SUPPORT HMB
SCOPE: (TIER-1)
CLASSES: None
PARENT: QueryParsingFilterControl
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyMarkerBrowseQueryGoButton template places a companion, button control for CHT Template HandyMarkerBrowseOneColumnQueryControl.
It forces a browse reset via ThisWindow.Reset(True) thus refreshing the browse and re-applying any query values present in one (or more) ExplorerBrowseOneColumnQueryControl templates present on the window.
This template is a child template of CHT HandyMarkerBrowse and as such, that template must be present before this one can be added.

** handymarkerbrowserecordtaggere... **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: BROWSE SUPPORT HMB
SCOPE: (TIER-1)
CLASSES: HNDMarkerBrowse
PARENT: HandyMarkerBrowse
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyMarkerBrowseRecordTaggerEx extension template inserts event driven code that results in one-click, on-off record tagging for your HandyMarkerBrowse. Single or multiple data record fields in the primary file can be toggled on and off with a single click on the column and row where the designated field is populated (hot key configurable). NOTE: For multiple HandyMarkerBrowses on the same window that require tagging, the developer should populate a separate instance of this template for each browse. This template is a child of HandyMarkerBrowse, and as such that template must be present before this one can be applied to the procedure.

** handymarkerbrowsereportbutton **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: BROWSE SUPPORT HMB
SCOPE: (TIER-1)
CLASSES: None
PARENT: HandyMarkerBrowse
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyMarkerBrowseReportButton template creates a button that starts an ABC report after copying the marked records in your HandyMarkerBrowse to a local queue identical to the browse queue and references it to a global reference variable called GLB:HNDMarkerCopyQ which is always visible to your report.
This template is a child template of CHT HandyMarkerBrowse and as such, that template must be present before this one can be added.

** handymarkerbrowsereportlimiter **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: BROWSE SUPPORT HMB
SCOPE: (TIER-1)
CLASSES: None
PARENT: Report(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyMarkerBrowseReportLimiter extension works in combination with CHT Template HandyMarkerBrowse to limit the records touched by any ABC Report template to those selected in the browse at the time the report procedure is called.

** handymarkerbrowserowmovebutton... **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: BROWSE SUPPORT HMB
SCOPE: (TIER-1)
CLASSES: None
PARENT: HandyMarkerBrowse
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyMarkerBrowseRowMoveButtons template drops four buttons that enable the user to slide browse rows up and down and to the top or bottom of the sort order, when the browse is ordered on a sequentially numbered column, designated for that purpose.
This template is a child template of CHT HandyMarkerBrowse and as such, that template must be present before this one can be added. For an example, see the CHT demo application called HNDCMP.APP (CHT Compile Manager).

** handymarkerbrowsesetscontrol **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: BROWSE SUPPORT HMB
SCOPE: (TIER-1)
CLASSES: None
PARENT: HandyMarkerBrowse
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyMarkerBrowseSetsControl template creates a marked sets dropdown control that enables you to save and recall sets of markers placed on a browse built with our HandyMarkerBrowse template. Each marked set can be given a unique name and once saved, can be recalled by selecting it from the dropdown control. Existing marked sets can be added to, cleared or removed entirely.
NOTE: This template is not multi-instance in the sense that you can populate two instances on the same window attached to different HandyMarkerBrowses populated on the same window. This template is a child template of CHT HandyMarkerBrowse and as such, that template must be present before this one can be added.

** handyquerytracingbutton_hmb **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: BROWSE SUPPORT HMB
SCOPE: (TIER-1)
CLASSES: HNDMarkerBrowse
PARENT: HandyMarkerBrowse
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyQueryTracingButton_HMB control template places a button on your window that enables DebugView-based query tracing on CHT browse extension template, HandyMarkerBrowse.
This is a child template of HandyMarkerBrowse, which must first be available on the procedure before this extended control becomes visible for selection and placement on your procedure window. The latest modification includes a new flag (HPROP:FullSelect) that exposes the entire SQL select string as well as a switch that re-directs tracing output to HNDSQLTRACE.APP.
See demo application HNDSQL2.APP for an example.

** popfavoritequeries_hmb **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: BROWSE SUPPORT HMB
SCOPE: (TIER-1)
CLASSES: HNDBrwFilter
PARENT: HandyMarkerBrowse
  

DESCRIPTION:

©CLARION HANDY TOOLS

PopFavoriteQueries_HMB template creates a set of controls that pop up pre-built queries and query macros saved to a file defined in your dictionary and inserts them into a query entry control also provided by the template.
Dropping this template has the combined effect of dropping QueryParsingFilterControl with some features turned off plus PopFavoriteQueries_QPFC and it does so in a single step rather than having to drop the other two templates one after the other.
See the predefined tables "PreQuery" and "PreMacro" in HNDACCES.DCT, HNDO.DCT and HNDCLIENTSVLEAN1VIEW.DCT. These tables should be imported into your app's dictionary as a model for pre-defined queries or macros data tables.
The table names and type (ISAM or SQL) doesn't really matter to this template, nor do the file prefixes. However, field names and data size definitions are required to be as defined in the PreQuery and PreMacro table designs. CHT has provided an importable JumpStart procedure for browsing, editing and inserting pre-built queries. See the CHT Jumpstart Procedures interface. Queries entered on the query entry control can, of course, be saved into your pre-defined queries table on the fly by users.
Deletes of pre-defined queries is also allowed -- no Macro saving or deleting, though. Adding/deleting controls are provided for queries by the template but these may be hidden if you want to disallow all operations except query and macro selection and execution.

(TIER-1) CALCULATOR SUPPORT
** embedcalculatorfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: CALCULATOR SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDCalc
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedCalculatorFunctions extension creates a single, local instance of the HNDCalcControl Class. All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.
On closing, the calculator posts EVENT:HandyCalcThreadReturn to your calling window at which time the calculator return value can be picked up from module variable CalcInVal. A child control template of this extension template is available (HandyCalcEntryControl_ECF) to assist in calling HandyCalc() from a button that completes an entry field. For a demonstration application, see HNDCALCULATOR.APP.

(TIER-1) CODE SIGNING SUPPORT
** handycodesigningextension **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: CODE SIGNING SUPPORT
SCOPE: (TIER-1)
CLASSES: None
PARENT: AACHTControlPanel
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyCodeSigningExtension global extension template runs the MS SignTool Tool against your EXEs or DLLs on completion of compile, facilitating and automating code signing your executables at compile time. An option is provided to pre-compress the executable before it is code signed.
HandyCodeSigningExtension is a child of global template AACHTControlPanel and as such, must be installed to the global extensions area by first installing AACHTControlPanel and inserting with that template selected.

(TIER-1) DATA VIEW SUPPORT
** embedviewex **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: DATA VIEW SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDViewAdapter
PARENT: Window(ABC), Report(ABC), Process(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedViewEx extension template generates a Multi-Table view with an accompanying ABC ViewManager for tables added to the Tables Schematic area of the procedure.
When the "Generate View Scan" switch is checked ON, code is generated in the HNDViewAdapter class method PerformViewScan to scan the VIEW from top to bottom using a developer-determined key and filter. As matching records enter their respective buffers, a further call is made to HNDViewAdapter class method TakeNextViewRecord so that any action or change required on matching records may be acted on by developer-placed embeds.
In other words, this acts like a intra-procedure process that traverses the related tables described in the view using the process order and filter requested by the call made to PerformViewScan(). An optional dialog even lets you install an EVENT:Accepted action on one or more window controls that can separately start the process using a key or field to determine order and a Clarion-style filter to limit records. The template also provides a convenient GOTO EMBED: button on the properties dialog to help you find the critical embed point where the code that operates on your record is to be embedded.
The latest revision of this control allows you to set processing order via function call. This function would normally be a call into one of the CHT browse classes, for example OBJ.GetOrderFieldName() but it could be any custom call that returns a single view field name or multiple view field names separated by commas and indicating direction via plus or minus signs preceeding the field name. Another addition in the latest revision lets you the filter format in use: Clarion or SQL.

** embedviewextransactionframe **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: DATA VIEW SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDViewAdapter
PARENT: Window(ABC), Report(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedViewExTransactionFrame template is a child of EmbedViewEx and can be attached to a specific instance of that template in order to frame a transaction either:
1) around the entire process
2) around each view record passing through the view.
Each transaction frame may be configured to include only the primary table OR all child tables in the view.

** handyfileviewbuilderb **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: DATA VIEW SUPPORT
SCOPE: (TIER-1)
CLASSES: None
PARENT: Window(ABC), Report(ABC), Process(ABC) Browse(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyFileViewBuilderB template builds a view based on file/table definitions in your dictionary. Drop it on any procedure (Browse, Process, Report, Window) that has tables defined in the procedure tables schematic. To generate a view based on table fields, complete the "File/View Information" tab by selecting the fields that should be populated to your queue.
A view created by this template can be used with CHT template FileLoadBrowseExtender in combination with HandyFileViewBuilderB and a CHT method called SQLFillQueueFromView() to build a fully functional, SQL queue-based browse independent of any ABC browse templates. HandyFileViewBuilderB template now also works with ABC Source procedures. Example Application: HNDTYPE4SERVERPEOPLE.APP

(TIER-1) DATES AND CALENDARS
** embeddatefunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: DATES AND CALENDARS
SCOPE: (TIER-1)
CLASSES: HNDDates
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedDateFunctions extension creates a single, local instance of the HNDDates Class. All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.

** globalincludedatefunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: DATES AND CALENDARS
SCOPE: (TIER-1)
CLASSES: HNDDates
PARENT: AACHTControlPanel
  

DESCRIPTION:

©CLARION HANDY TOOLS

GlobalIncludeDateFunctions extension template globally instantiates a single instance of the CHT HNDDates class. You may change the default instance name if you wish.
This template is a child of AACHTControlPanel and can only be populated to your application once AACHTControlPanel has been added.

** handypopupcalendar **

  
VERSION: 28A.01.00
TYPE: CODE TEMPLATE
CATEGORY: DATES AND CALENDARS
SCOPE: (TIER-1)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyPopupCalendar code template incorporates the HNDDates class and drops code for a popup calendar in the current embed position.
Two calendar functions are provided: Calendar() and CalendarEx(). The Calendar() function requires 11 standard icons, included with your CHT install set. These icons should be visible on the image path established in Clarion's redirection (.RED) file. The template adds the required icons to the project list where you can see them, in case you've misplaced them for any reason.
The CalendarEx() function provides for 6 selectable color themes.

** source_embeddatefunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: DATES AND CALENDARS
SCOPE: (TIER-1)
CLASSES: HNDDates
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

Source_EmbedDateFunctions extension creates a single, local instance of the HNDDates Classes.
All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.
This template is specific to ABC Source procedures which do not contain the normal embed points found in ABC window procedures like browses, reports and processes.

(TIER-1) DISK FILES SUPPORT
** globalincludehndbiniofunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: DISK FILES SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDBinFileIO
PARENT: AACHTControlPanel
  

DESCRIPTION:

©CLARION HANDY TOOLS

GlobalIncludeHNDBinIOFunctionsextension template globally instantiates a single instance of the CHT HNDBinIO class.
You may change the default instance name if you wish. This template is a child of AACHTControlPanel and can only be populated to your application once AACHTControlPanel has been added.
NOTE: This template is auto-populated (once) to the global area of your application, when any one of our "CHT Snap" functionalities is enabled on the global template called Application Snap-Ins.

** globalincludehndutilitiesdll **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: DISK FILES SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDUtilStaticFunctions
PARENT: AACHTControlPanel
  

DESCRIPTION:

©CLARION HANDY TOOLS

GlobalIncludeHNDUtilitiesDLL extension template attaches HNDUTILITIESCx.DLL globally to your application.
This dll is an export version of CHT's HNDUTIL class. The functions are implemented as static functions much like SV's clarion BUILTINS. A list of functions and function prototypes is included in HNDUTILITIES.CLW attached by this template as a "header" file into your map for you and includes HNDUTILITIES.LIB to your application such that by dropping this template globally into your application at the global level.
Hence, all functions in the HNDUTILITIES.DLL are available globally inside your application.
Function descriptions are available in HNDUTILITIES.HTML on our website as well as in your \html\ subdirectory below \accessory\hnd\ in your clarion install directory.
This template is a child of AACHTControlPanel and can only be populated to your application once AACHTControlPanel has been added.
This template automatically copies HNDUTILITIES.DLL to your output directory.

(TIER-1) EMAIL SUPPORT
** embedcdomailfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: EMAIL SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDMScdo
PARENT: ABCProcedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

This extension creates a single, local instance of the HNDMScdo Classes. CDO mail is a form of SMTP mail built into windows applications for use by scripting languages.
CDO Mail, like SMTP, must be configured with valid email parameters, like username, password and so on. When this template is incorporated, the application requires no extra DLLs in order to send and receive mail.
All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.
Example application: HNDMAILCDO.APP

** embedhndoutlookclassfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: EMAIL SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDOfficeClass HNDOutlookClass
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedHNDOutlookClassFunctions extension creates a single, local instance of the HNDOfficeClass and HNDOutlookClass. All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.
This template is the parent of a control template called HandyOutlookInterfaceControls. In order to populate HandyOutlookInterfaceControls this template must be applied to your procedure beforehand.

** embedmapiemail **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: EMAIL SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDIMail
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedMapiEmail extension creates a single, local instance of the HNDIMail Classes which provide email services via extended MAPI by enlisting the capabilities of your default email client, Outlook, Outlook Express and other non Microsoft MAPI-Compliant email client software.
All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.
Example applications: HNDBLKML.APP, HNDMLMAPI.APP,

** embednetmapiclasses **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: EMAIL SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDNetMAPIClass
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedNetMAPIClasses extension creates a single, local instance of HNDNetMAPIClass. All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.
Functionality provided is MAPI Email Send via a call into a C# DLL built with Visual Studio .NET utilizing COM Interop. The interface layer to Clarion can be found in HNDNETMAPI.INC/CLW/TLB.
The DLL required for this is HNDNETMAPI.DLL.

** embednetsmtpclasses **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: EMAIL SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDNetSMTPClass
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedNetSMTPClasses extension creates a single, local instance of HNDNetSMTPClass. All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.
Functionality provided is SMTP Email Send via a call into a C# DLL built with Visual Studio .NET utilizing COM Interop. The interface layer to Clarion can be found in HNDNETSMTP.INC/CLW/TLB.

** embedsmtpfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: EMAIL SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDSmtp
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedSMTPFunctions extension creates a single, local instance of the HNDSmtp Classes. This class (HNDSMTP) now uses Clarion DLL CLARUNEXT.DLL to perform smtp sends. Certain class properties and functions have been dropped or changed and will require amendments if hand-embedded.
Template-based calls generated by this template have been adjusted to these class revisions and will generate correctly. Template configurations made on the template prompts may need to be checked for correctness of content but WILL generate correct code for the implementation. Since SMTP is sendmail capable only, the email configurations dialogs have now been adjusted to ask only for SMTP Server, SMTP Port, SMTP User and SMTP Password.
All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.

** handycommapicontrol **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: EMAIL SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDComMapiControl
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyCOMMapiControl control template places a MicroSoft COM MAPI Control from MSMAPI32.OCX on your application window. CHT's MAPI Control provides a full-feature, user-configurable MAPI Email interface that lets users easily control send, behaviors.
Developers have the option of creating their own email interfaces for sending, using the default email client's (OutLook or OutLook Express) interface or simply provide programmatic background sending of single or multiple emails including CC and BCC.
See HNDMAPI.INC, HNDMAPI.CLW and HNDMAPI.TLB to study the header, code module and method interfaces respectively.
Demonstration application: HNDCONTROLTPLS.APP

** handycomoutlookcontrol **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: EMAIL SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDOutlookClass
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyCOMOutlookControl control template places a Microsoft COM Outlook Control from OUTLCTL.DLL on your application window. CHT's Outlook Control provides a full-feature, user-configurable Outlook Email interface that lets users easily control send, receive and view behaviors, and interact with email documents, tasks, journals, contacts, and more from inside their Clarion application.
See HNDOUTTL.INC, HNDOUTTL.CLW and HNDOUTTL.TLB to study the header, code module and method interfaces respectively.
A demonstration application called HNDOUTLOOK.APP illustrates use of the template and calling HNDOutlookClass Class methods.

** handymailmecontrol **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: EMAIL SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDWindow
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS
This control template places a mailto: email link on your application window. It also creates an embeddable instance of the HNDWindow Class.
Clicking the resulting link starts your email program ready to accept email body information and sends mail to the recipient of your choice.
In this template's entry fields, you may enter information in constant or variable format.
Variables may be selected using the ellipsis button. Variables are distinguished from text by a leading exclamation mark.

** handymailmecontrol_ewf **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: EMAIL SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDWindow
PARENT: EmbedWindowFunctions
  

DESCRIPTION:

©CLARION HANDY TOOLS
This control template places a mailto: email link on your application window. It requires that the EmbedWindowFunctions template be on the window first.
Clicking the link placed by this template starts your email program, enabling you to send an email message to the recipient of your choice. In this template's entry fields, you may enter information in constant or variable format.
Variables may be selected using the ellipsis button. Variables are distinguished from text by a leading exclamation mark.
This template is a child template of CHT EmbedWindowFunctions and as such, that template must be present before this one can be added.
Demonstration application: HNDCONTROLTPLS.APP

** handymapiemail **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: EMAIL SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDIMail
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyMapiEmail extension creates a single, local instance of the HNDIMail Class which provide email services via extended MAPI by enlisting the capabilities of your default MAPI-Compliant email clients Outlook and Windows Live Mail.
All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.
Example application: HNDMAILSEND.APP

** instantemailsend **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: EMAIL SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDIMail
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

This template and its underlying classes are optimized for use with OutLook and OutLook Express and Windows Mail as the default email client. Other non-Microsoft email clients may exhibit slightly different behaviors, depending on their implementation of the MAPI interface or simply on your configuration of the email client software.
Some clients may fail outright no matter what you do and will require you to replace them with a more Outlook- compatible default client if you intend to make use of this template.
The template instantiates the HNDIMail class, and initializes sufficient properties of the class to create an "Email Send" procedure.
It writes all the code necessary to send an email message to the provided email address(es). It provides for CC's and BCC's as well as for the inclusion of one or email attachments with the message.
Preparation required by you is kept to a minimum.

** instantoutlookmail **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: EMAIL SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDIMail
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

InstantOutlookMail template and its underlying classes are optimized for use with OutLook and OutLook Express as the default email client. Other non-Microsoft email clients may exhibit slightly different behaviors, depending on their implementation of the MAPI interface or simply on your configuration of the email client software.
Some clients may fail outright no matter what you do and will require you to replace them with a more Outlook- compatible default client if you intend to make use of this template.
The template places 25+ controls on your window. If you do not want to make use of the functionality that any particular control represents, simply remove that control without letting the Clarion IDE remove the entire template. We've populated this quantity of controls to help illustrate the use of specific HNDIMail Class methods and properties.
Example application HNDBLKML.APP

** source_embedmapifunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: EMAIL SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDIMail
PARENT: ABCSourceProcedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

Source_EmbedMAPIFunctions extension creates a single, local instance of the HNDIMail Classes.
All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion. This template is specific to ABC Source procedures which do not contain the normal embed points found in ABC window procedures like browses, reports and processes.
See example application HNDSOURCEMAPIDEMO.APP.

** source_embedsmtpfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: EMAIL SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDSmtp
PARENT: ABCSourceProcedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

Source_EmbedSMTPFunctions extension creates a single, local instance of the HNDSMTP Classes.
All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion. This template is specific to ABC Source procedures which do not contain the normal embed points found in ABC window procedures like browses, reports and processes.
See demo app HNDSOURCESMTPDEMO.APP.

(TIER-1) EMBEDDING SUPPORT
** chtbestpracticeembedclass **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: EMBEDDING SUPPORT
SCOPE: (TIER-1)
CLASSES: None
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

CHTBestPracticeEmbedClass template assists the developer with "Best Practice" embedding as discussed in several CHT papers written by Gus M. Creces concerning the topic of Clarion embedding practices. The latest version (revised 2021) paper may be found here:

Clarion Embedding Best Practice - Paper Three
Example applications:
HNDBACKUPCONFIG.APP, HNDSQLTRACE.APP, HNDBATCHRUNNER.APP
"CODE-TABS" have been added to allow the insertion of procedure definitions into the PROCEDURE DEFINITIONS AREA and several TABs have been addd to provide for insertion of procedure code into the PROCEDURE CODE AREA, all from the template interface rather than inside the procedure from the EMBEDITOR.
To determine if a given "CODE-TAB" will drop your code where it's needed, experiment first, by dropping a comment followed by opening the EMBEDITOR and searching for your comment.

** callabccompliantmethod **

  
VERSION: 28A.01.00
TYPE: CODE TEMPLATE
CATEGORY: EMBEDDING SUPPORT
SCOPE: (TIER-1)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

CallABCCompliantMethod template provides assistance with calls to ABC Compliant methods available in all registered classes attached to this procedure or declared globally in the application.
Begin by selecting the class instance name to be called, followed by the method to be called. Once any method is selected, the Clarion Expression Editor contains a prototype list of the parameter names and data types required to call that method. Insert the correct parameters and select a target variable to receive the method return value, where required.
This template will warn you when a required return value is missing.

** codetabeventhooks **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: EMBEDDING SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDWindow
PARENT: ApplicationImagesEx
  

DESCRIPTION:

©CLARION HANDY TOOLS
This template is new as of Build 27A.03.00. It provides the developer with a means to "hook" code onto WINDOW EVENTS by selecting a specific event and inserting code into the related template text control and to then have the template place your code into the correct procedure location and have it executed each time the selected event is triggered.

To determine if a given "CODE-TAB" will drop your code where it's needed, experiment first, by dropping a comment followed by opening the EMBEDITOR and searching for your comment.

** codetabmenuhooks **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: EMBEDDING SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDWindow
PARENT: ApplicationImagesEx
  

DESCRIPTION:

©CLARION HANDY TOOLS

This template is new as of Build 27A.03.00
Developer hand code can be inserted under selected controls such as menus or buttons at PRIORITY(20) or priority(6000). On any "CODE" tab, select a control capable of issuing an ACCEPTED event and insert code into the relevant priority edit field are provided.
To determine if a given "CODE-TAB" will drop your code where it's needed, experiment first, by dropping a comment followed by opening the EMBEDITOR and searching for your comment.

** embedapphookfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: EMBEDDING SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDAppHook
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedAppHookFunctions extension creates a single, local instance of the EmbedAppHookFunctions Class. All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.
The functions added to your procedure by this template, are located in a class module set called HNDAPPHK.INC/HNDAPPHK.CLW. The class is explained further, including example demo app references in CHTCLASSES.HTML available from our website or in your CHT installation under \accessory\hnd\html\.

** embedview **

  
VERSION: 28A.01.00
TYPE: CODE TEMPLATE
CATEGORY: EMBEDDING SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDViewAdapter
PARENT: Window(ABC), Report(ABC), Process(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

This code template generates a table view with an accompanying ABC ViewManager for tables selected here, into the data area of your procedure.
When the "Generate View Scan" switch is checked ON, code is generated in the HNDViewAdapter class method PerformTableScan to scan the VIEW from top to bottom using a developer-determined key and filter.
As matching records enter their respective buffers, a further call is made to HNDViewAdapter class method TakeNextTableRecord so that any action or change required on matching records may be acted on by developer-placed embeds.

** handyapplicationinifetch **

  
VERSION: 28A.01.00
TYPE: CODE TEMPLATE
CATEGORY: EMBEDDING SUPPORT
SCOPE: (TIER-1)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyApplicationIniFetch template writes the necessary code to fetch the contents of a single entry from your application INI file. If the application is configured to use the registry instead of INI files the fetch is from the registry.

** handyapplicationiniput **

  
VERSION: 28A.01.00
TYPE: CODE TEMPLATE
CATEGORY: EMBEDDING SUPPORT
SCOPE: (TIER-1)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyApplicationIniPut template writes code to PUT data to a single entry in your application INI file. If your application is configured to use the Windows Registry instead of an INI file, the PUT value goes to the equivalently names registry section. An optional "Include fetch?" switch will also write an INI fetch using the same group of tags and variables.

** handyembedfromtemplatebutton **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: EMBEDDING SUPPORT
SCOPE: (TIER-1)
CLASSES: None
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyEmbedFromTemplateButton template helps you place free-form hand code below a button right from the template, without actually entering the embeditor to place your code. Embed code can be placed (optionally) before and after the button accept event. New at January 2023 - CODE-TAB with two code entry areas generated into the procedure before control ACCEPTED and after control ACCEPTED.
The "CODE-TABS" on this template are new of Build 27A.03.00. They provide the developer with a means to "hook" code into the procedure by inserting code into the related template text control and to have the template place your code into the correct location and have it executed by the procedure.
To determine if a given "CODE-TAB" will drop your code where it's needed, experiment first, by dropping a comment followed by opening the EMBEDITOR and searching for your comment.

** handyhelpfiletopicembed **

  
VERSION: 28A.01.00
TYPE: CODE TEMPLATE
CATEGORY: EMBEDDING SUPPORT
SCOPE: (TIER-1)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyHelpFileTopicEmbed code template embeds a call to a topic in your help file. The default help topic is the current procedure name.

** handyhelpmessagebox **

  
VERSION: 28A.01.00
TYPE: CODE TEMPLATE
CATEGORY: EMBEDDING SUPPORT
SCOPE: (TIER-1)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyHelpMessageBox code template helps you to compose a detailed help message box, useful for pop-up instructions.

** handyroutinemaker **

  
VERSION: 28A.01.00
TYPE: CODE TEMPLATE
CATEGORY: EMBEDDING SUPPORT
SCOPE: (TIER-1)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyRoutineMaker code template drops a DO call to an embeddable routine that you name, and describe here. The template writes the routine header and provides you with a GOTO: button to take you to the routine's embed area to write your code.
The third template tab provides you with a list of window controls that should call this routine on their accepted event. In other words, you can create, describe, write code, and place DO calls for a given routine, all from a single code-template embed point.

** postcontrolevent **

  
VERSION: 28A.01.00
TYPE: CODE TEMPLATE
CATEGORY: EMBEDDING SUPPORT
SCOPE: (TIER-1)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

PostControlEvent code template assists with posting events to controls on your procedure window.

** postcontroleventonalert **

  
VERSION: 28A.01.00
TYPE: CODE TEMPLATE
CATEGORY: EMBEDDING SUPPORT
SCOPE: (TIER-1)
CLASSES: None
PARENT: ABCWindow
  

DESCRIPTION:

©CLARION HANDY TOOLS

PostControlEventOnAlert code template assists with posting events to controls on your procedure window. It intercepts an alertkey on a developer-designated window control and posts an event across to another control.

** posthotkeyevent **

  
VERSION: 28A.01.00
TYPE: CODE TEMPLATE
CATEGORY: EMBEDDING SUPPORT
SCOPE: (TIER-1)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

PostHotKeyEvent code template assists with posting hot-key events to your procedure window.

(TIER-1) ERROR HANDLING SUPPORT
** embeddebugviewtrace **

  
VERSION: 28A.01.00
TYPE: CODE TEMPLATE
CATEGORY: ERROR HANDLING SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDError
PARENT: Any
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedDebugViewTrace code template helps you call OBJ.PostDebugString() in available instances of the CHT HNDERROR class, in order to trace the values of variables and class properties or return values of function calls via DebugView. This embeded functionality, is immediately disengaged when your application is re-compiled with DEBUG mode off.
If you do not have a copy of DebugView, visit:
https://www.microsoft.com/technet/sysinternals/utilities/debugview.mspx.

** embedhnderrorclass **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: ERROR HANDLING SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDError
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedHNDErrorClass extension creates a single, local instance of the HNDError Classes to your procedure.
All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.
For a demo application that illustrates this template see HNDSOURCESMTPDEMO.APP.

** handycustomabcerrors **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: ERROR HANDLING SUPPORT
SCOPE: (TIER-1)
CLASSES: None
PARENT: Window(ABC),Report(ABC),Process(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyCustomABCErrors template adds custom errors to the standard ABC global error handler. It provides for specific error conditions and messages produced by your application that are not normally provided for in the stock of standard errors messages and conditions available from the ABC error handler.

(TIER-1) GLOBAL TEMPLATE SUPPORT
** chtaddglobalsfirst **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: GLOBAL TEMPLATE SUPPORT
SCOPE: (TIER-1)
CLASSES: None
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

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 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 will be 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 **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: GLOBAL TEMPLATE SUPPORT
SCOPE: (TIER-1)
CLASSES: None
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

This is the only CHT Control 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 "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 will be 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.

(TIER-1) MS OFFICE SUPPORT
** embedhndexcelclassfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: MS OFFICE SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDOfficeClass HNDExcelClass
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedHNDExcelClassFunctions extension creates a single, local instance of the HNDOfficeClass and HNDExcelClass Classes. All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion. Example Application: HNDTESTEXCEL.APP.

** embedhndwordfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: MS OFFICE SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDOfficeClass HNDWordClass
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedHNDWordClassFunctions extension creates a single, local instance of the HNDOfficeWord class, which is located in class modules HNDWORD.INC (header) and HNDWORD.CLW (code). This module derives HNDOfficeClass, an OLE interface into the Microsoft Office products suite.
This template is the parent of a control template called HandyWordInterfaceControls. In order to populate HandyWordInterfaceControls this template must be applied to your procedure beforehand. All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.

** embedmswordfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: MS OFFICE SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDMSWord
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedMSWordFunctions extension creates a single, local instance of the HNDMSWord Class. It is the parent of these related classes: HNDRefWindow, HNDActiveDocument, HNDDocuments, HNDApplication. All are located in modules: HNDMSWRD.INC and HNDMSWRD.CLW.
For HNDMSWord to function as expected, Microsoft Office must be installed, particularly Microsoft Word. All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.

** handyoutlookinterfacecontrols **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: MS OFFICE SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDOfficeClass HNDOfficeOutlook
PARENT: Window(ABC),EmbedHNDOutlookClassFunctions
  

DESCRIPTION:

©CLARION HANDY TOOLS

This set of controls may be selectively used or removed in order to control Microsoft Word. HandyOutlookInterfaceControls template is a child of EmbedHNDOutlookClassFunctions(HNDTools) which must be present before this control template becomes visible for application to your procedure window. This template provides a set of button controls intended for placement on ABC windows. Unwanted controls may be removed from the window when only a single functionality is required. Functions included are: Appointments, Tasks, Posts, Notes, Journal, Contacts and Email.

** handywordinterfacecontrols **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: MS OFFICE SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDOfficeClass HNDWordClass
PARENT: Window(ABC),EmbedHNDWordClassFunctions
  

DESCRIPTION:

©CLARION HANDY TOOLS

This set of controls may be selectively used or removed in order to control Microsoft Word. HandyWordInterfaceControls template is a child of EmbedHNDWordClassFunctions(HNDTools) which must be present before this control template becomes visible for application to your procedure window.
Via the parent EmbedHNDWordClassFunctions template, this template indirectly utilizes the HNDOfficeWord Class located in HNDWORD.INC and HNDWORD.CLW. This template provides a set of button controls intended for placement on ABC windows. Unwanted controls may be removed from the window when only a single functionality is required.
Functions included are:

List recent documents, Close current document, Get document name, Close all documents, Minimize MS Word, Restore MS Word, Maximize MS Word, Spell check document, Grammar check document.

(TIER-1) PROJECT BUILDER SUPPORT
** chtcheckpresent **

  
VERSION: 28A.01.00
TYPE: UTILITY TEMPLATE
CATEGORY: PROJECT BUILDER SUPPORT
SCOPE: (TIER-1)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

CHTCheckPresent template is used by CHT PROJECT BUILDER to determine if CHT templates have been initially registered on your system.

** embedclarionddefunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: PROJECT BUILDER SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDClarionDDE
PARENT: ApplicationImagesEx
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedClarionDDEFunctions extension creates a single, local instance of the HNDClarionDDE Classes. All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion. The functions in HNDCldde allow you to control the Clarion compiler, generator and IDE from another application.
See HNDCMP.APP the CHT Clarion Project Builder (AKA: CHT Project Builder) for an example of this template in use. Note that since the appearance of C7, DDE has been dropped from the Clarion IDE as a control mechanism in favor of a command-line interface. The HNDClarionDDE class is now solely used by CHT to implement application batch compile from within a single CHT utlity application, namely: HNDCMP.APP, (CHT Project Builder).
This template/class combo requires HNDCAPCOM.DLL (capture console) and tag this DLL inside the application .SHP file.

(TIER-1) QUERY SUPPORT
** embedfilterfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: QUERY SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDBrwFilter
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedFilterFunctions extension creates a single, local instance of the HNDBrwFilter Classes. All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.

** embedhndquerybuilderfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: QUERY SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDQueryBuilder
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedHNDQueryBuilderFunctions template instantiates a CHT class called HNDQueryBuilder on your application procedure. The class is contained in modules HNDQBINF.INC/HNDQBINF.CLW and provides file query functionality for the selection of disk files to be operated on.
This template interface also now provides the capability to control icons and screen-prompt colors in the CHT Query builder dialog provided in the HNDQueryBuilder class.

EXAMPLE: Procedure: JumpStartBulkFileCopyWithProgress in HNDCPYDM.APP

** handyfilequeuebuilder **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: QUERY SUPPORT
SCOPE: (TIER-1)
CLASSES: None
PARENT: Window(ABC), Report(ABC), Process(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyFileQueueBuilder template builds a queue based on file (table) definitions in your dictionary. Drop it on any procedure that has tables defined in the procedure tables schematic.
To generate a queue based on table fields, complete the "File/Queue Information tab by selecting the fields that should be populated to your queue. A queue created by this template can be used with CHT template ListBoxBrowseExtender to build a fully functional queue based browse independent of any ABC browse templates.
Note that the template now warns you that local variables are not permitted to be placed into the queue. This template also works with ABC Source procedures.

** handyqueryprocesslimiter **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: QUERY SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDExport HNDBrwFilter
PARENT: Process(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyQueryProcessLimiter extension works in combination with CHT Template QueryParsingFilterControl to limit the records touched by any ABC Process template to those meeting requirements of the passed in query. It contains a number of built-in capabilities: 1 - Export to a text file 2 - Export to HTML 3 - Bulk delete 4 - Bulk record modification 5 - Bulk append to another file Export functionality used by this template is provided by the CHT Class HNDExport. Filtering and querying functionality used by this template is provided by the CHT Class HNDBrwFilter.

** source_embedquerybuilderfuncti... **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: QUERY SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDQueryBuilder
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

Source_EmbedQueryBuilderFunctions extension creates a single, local instance of the HNDQueryBuilder Classes.
All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion. This template is specific to ABC Source procedures which do not contain the normal embed points found in ABC window procedures like browses, reports and processes.

(TIER-1) REPORT SUPPORT
** handyclarionreportwritercontro... **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: REPORT SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDReportEngine HNDDisk HNDBrwFilter HNDParse
PARENT: Window(ABC), Report(ABC), Process(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyClarionReportWriterControl_TXR template attaches the Clarion Reportwriter class "ReportEngine" to your procedure and ensures that the current Report Writer DLL is linked into your application. Since this DLL is only available to be linked into a STANDALONE application, the template reverts your application to STANDALONE mode in the event it is set LOCAL. If your application uses CHT's VblFileNames template this template detects that and passes to report writer via the "ResolveVariableFileNames()" function the value of the relevant file name variable for any procedure tables populated as Primary, Secondary and Other. The template can also be configured to pass pre-opened files to Report Writer directly from the procedure.
This template implements easy report loading by scanning a designated directory and its subdirectories for .TXR files which it loads into a queue to build a POPUP menu. CHT's HNDReportWriter Class (HNDRWPRLIB.INC / HNDRWPRLIB.CLW) also implements a built-in report previewer. And the template provides a built-in CHT query control that accepts real-language queries which it auto-translates to SQL for SQL back ends or into standard Clarion query syntax for ISAM files.
As reports are selected, the query parser scans report view fields and primes the CHT query builder with query fields appropriate to the report selected. Reports can be printed directly from the print button provided by the template and specific report TXRs can be selected from a POPUP menu.

** handyqueryreportlimiter **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: REPORT SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDBrwFilter
PARENT: Report(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyQueryReportLimiter extension works in combination with any other procedure that implements a QueryParsingFilterControl template to create standardized CHT queries. Your report procedure requires a (*STRING xQuery) parameter in order to accept the query passed to it via our process/report calling template called HandyQueryReportButton.

(TIER-1) SOURCE CODE SUPPORT
** handysourceinlineprocess_hsp **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: SOURCE CODE SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDParse HNDDataAdapter
PARENT: HandySourceProcedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

Use HandySourceInLineProcess_HSP template by dropping it on a procedure built with the CHT template HandySourceProcedure_TS. It builds an in-line process that traverses any file, with or without filter to perform some process-like operation.
By "In-Line" we mean a process from which the calling procedure expects a response before it continues doing what it was doing. This, as opposed to an "Off-Line" process which performs some file action in the the background so that the calling procedure does not wait for it to complete.
The Data Packaging tab on this template provides a variety of ways to "package" the data touched during each filtered pass through your file/table.
This template is a child of HandySourceProcedure, and as such requires that template to be present before this one can be applied to your procedure.

** handysourceprocedure **

  
VERSION: 28A.01.00
TYPE: PROCEDURE TEMPLATE
CATEGORY: SOURCE CODE SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDSourceProcedure
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandySourceProcedure template builds a flexible source code procedure that allows you to attach any number of CHT classes using CHT templates.
The resulting procedure's embed structure is based on a skeleton class called HNDSourceProcedure, and it results in a far more end-user-embeddable procedure than the standard ABC source procedure which does not provide for method overriding and derivation, or much in the way of embed points.
CHT uses this procedure template extensively in its JumpStarts in order to bring various CHT templates and classes together into a procedural context that then permits us to create a new outcome not provided directly by individual templates or classes by themselves.

** handysourceprocedure_ts **

  
VERSION: 28A.01.00
TYPE: PROCEDURE TEMPLATE
CATEGORY: SOURCE CODE SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDSourceProcedure
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandySourceProcedure_TS template builds a flexible source code procedure that allows you to attach any number of CHT classes using CHT templates.
The resulting procedure's embed structure is based on a skeleton class called HNDSourceProcedure, and it results in a far more flexible procedure than the standard ABC source procedure which does not provide for method overriding and derivation.
CHT uses this procedure template extensively in its JumpStarts in order to bring various CHT templates and classes together into a procedural context that then permits us to create a new outcome not provided directly by individual templates or classes by themselves. Similar to HandySourceProcedure, this template provides access to a table schematic which permits the developer to attach a relational table schematic accompanied by views.

(TIER-1) SPELL CHECK SUPPORT
** globalincludespellingcheck **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: SPELL CHECK SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDSpell
PARENT: AACHTControlPanel
  

DESCRIPTION:

©CLARION HANDY TOOLS

GlobalIncludeSpellingCheck global extension template brings low-overhead, multi-language spell-checking to your applications. It enables a global "Spell Check" object to trigger spell-checking in entry and text controls populated on your procedure windows.
Checking can be triggered for an entire window using a user-configurable hot key defaulting to CTRLF7 or individual controls can be checked using a second configurable hot key.
Further, individual words may be checked by selecting the word and using a third configurable hot key. Initially we are providing, on request, lexicons for the following languages:
English, Afrikaans, Croatian, French, German, Greek, Italian, Netherlands, Portugese, Russian, Spanish, Swedish, Ukranian.
Since these are derived from open-source word lists, we will ask developers seeking non-English dictionaries to help us develop a common-words list for their chosen language. A common-words list is a set of the top 25-50 most commonly used words. In English, for example, these are words like "the", "and", "to", and so forth. For a working, English-language example application see HNDSPELLCHECKGLOBAL.APP.
By default, all TEXT and ENTRY controls are spell-checked. This template attaches a local template called LocalIncludeSpellingCheck to your window procedures. This child template generates the actual spell-check code inside your window. Further configuration is provided at the level of individual windows.

** localincludespellingcheck **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: SPELL CHECK SUPPORT
SCOPE: (TIER-1)
CLASSES: HNDUtil HNDSpell
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

LocalIncludeSpellingCheck extension template is a child of global template GlobalIncludeSpellingCheck. It brings low-overhead, multi-language spell-checking to any application window upon which it populates. Checking can be triggered for the entire window using a configurable hot key defaulting to CTRLF7 and individual controls can be checked using a second configurable hot key.
Further, individual words may be checked by selecting the word and using a third configurable hot key. Initially we are providing, on request, lexicons for the following languages: English, Afrikaans, Croatian, French, German, Greek, Italian, Netherlands, Portugese, Russian, Spanish, Swedish, Ukranian. Since these are derived from open-source word lists, we ask developers seeking non-English dictionaries to help us develop a common-words list for their chosen language. A common-words list is a set of the top 25-50 most commonly used words. In English, for example, these are words like "the", "and", "to", and so forth. For a working, English-language example application see HNDSPELLCHECKGLOBAL.APP.
This local template provides the opportunity to disable spelling check on any window on which it populates. You can further override default behavior and select specific fields to be checked, in which case only selected fields are processed.

(TIER-1) SPLASH SCREEN SUPPORT
** appstartsplashprocedure **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: SPLASH SCREEN SUPPORT
SCOPE: (TIER-1)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

AppStartSplashProcedure extension template is dropped on the application frame to start your splash screen earlier, with an option to start threaded or unthreaded.
This is intended to replace the splash screen dropdown that appears on the ABC frame template which starts too late and causes the splash to lag and often not display correctly until the application has completed loading.
This spash screen implementation loads and displays the splash immediately on application load even before the frame procedure loads. If started unthreaded the application frame only displays when the splash completes, or is clicked by the user.
A "CODE" Tab has been provided on this template to enable code insertion BEFORE, and AFTER the splash procedure is called at approximately PRIORITY(20) and PRIORITY(6000) respectively.
To determine if a given "CODE-TAB" will drop your code where it's needed, experiment first, by dropping a comment followed by opening the EMBEDITOR and searching for your comment.

(TIER-1) THREAD SUPPORT
** handythreadlimiter **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: THREAD SUPPORT
SCOPE: (TIER-1)
CLASSES: None
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyThreadLimiter extension template limits a procedure to one instance only. A second call to an already-running procedure brings that procedure to the top, even if minimized. This template provides no developer input dialogs and requires no further configuration.

(TIER-1) UPDATE FORM SUPPORT
** browselesseditformprocedure **

  
VERSION: 28A.01.00
TYPE: PROCEDURE TEMPLATE
CATEGORY: UPDATE FORM SUPPORT
SCOPE: (TIER-1)
CLASSES: None
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

BrowseLessEditFormProcedure template builds an edit form procedure that permits you to traverse, query and edit file/table records without the use of a browse procedure. This template creates an independent procedure that may be called directly from a button or menu to edit a file without requiring the intermediate use of a browse to first isolate the record to be edited. This template uses a standard ABC window template as its parent. So in most respects and for embedding purposes it is very similar to an ABC window or form procedure.

(TIER-1) WINDOW CONTROLS SUPPORT
** globaltransparentcontrols **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: WINDOW CONTROLS SUPPORT
SCOPE: (TIER-1)
CLASSES: None
PARENT: AACHTControlPanel
  

DESCRIPTION:

©CLARION HANDY TOOLS

GlobalTransparentControls global extension allows you to control transparency on window and report controls throughout your entire application without having to go back and manually check the "transparent" property on a procedure-by-procedure basis.
Individual control types may be controlled separately from this global template. A child template called ProcedureTransparentControls is populated on all qualifying procedure types and provides local override capability.

** proceduretransparentcontrols **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: WINDOW CONTROLS SUPPORT
SCOPE: (TIER-1)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

ProcedureTransparentControls procedure extension allows you to control transparency on window and report controls created by your procedure without having to go back and manually check the "transparent" property on a structure-by-structure basis. Individual control types may be controlled separately. This template is a child of global template GlobalTransparentControls which must be populated before this one becomes visible. Global settings may be overridden locally on this template's interface.

(TIER-2) APP CONFIG SUPPORT
** embedhndconfigfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: APP CONFIG SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDConfig
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedHNDConfigFunctions extension creates a single, local instance of the CHT HNDConfig Classes. All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.
HNDConfig functions are also incorporated either by derviation or composition into the following CHT classes which use it for connectivity configuration: HNDHTTP, HNDINETFTP, HNDNETFTP, HNDPOP, HNDNETSMTP, HNDSMTP. If your procedure already uses templates which incorporate any of these classes into your application, there is already a HNDConfig class available to you and use of this template may be redundant.

** globalincludehndconfigfunction... **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: APP CONFIG SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDConfig
PARENT: AACHTControlPanel
  

DESCRIPTION:

©CLARION HANDY TOOLS

GlobalIncludeHNDConfigFunctions extension template globally instantiates a single instance of the CHT HNDConfig class.
You may change the default instance name if you wish. This template is a child of AACHTControlPanel and can only be populated to your application once AACHTControlPanel has been added.
NOTE: This template is auto-populated (once) to the global area of your application, when any one of our "CHT Snap" functionalities is enabled on the global template called Application Snap-Ins.

(TIER-2) APP HELP SUPPORT
** handycomanimationcontrol **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: APP HELP SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDComAnimation
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyCOMAnimationControl control template places a MicroSoft COM Animation Control from MSCOMCT2.OCX on your application window. An animation control is a window that displays an Audio-Video Interleaved (AVI) clip. An AVI clip is a series of bitmap frames like a movie. Animation controls can only display AVI clips that do not contain audio.
One common use for an animation control is to indicate system activity during a lengthy operation. This is possible because the operation thread continues executing while the AVI clip is displayed. For example, the Find dialog box of Microsoft Windows Explorer displays a moving magnifying glass as the system searches for a file.
An animation control can display an AVI clip originating from either an uncompressed AVI file or from an AVI file that was compressed using run-length (BI_RLE8) encoding. You can add the AVI clip to your application as an AVI resource, or the clip can accompany your application as a separate AVI file.
The template incorporates a CHT COM Class Wrapper called HNDComAnimation into your procedure. See HNDCMANI.INC, HNDCMANI.CLW and HNDCMANI.TLB to study the header, code module and method interfaces respectively. Demonstration application: HNDCONTROLTPLS.APP

** handyhelpbuttoncontrol **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: APP HELP SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDWindow
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyHelpButtonControl template helps you to compose a detailed help message box, useful for pop-up instructions.
The help message pops up when the accompanying button control is pressed, or an accepted event is posted to the control.
Example application HNDCONTROLTPLS.APP

** handyhelpfiletopicbutton **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: APP HELP SUPPORT
SCOPE: (TIER-2)
CLASSES: None
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyHelpFileTopicButton control template places a help button on your application window. Enter the name of your HTML help file assumed to be located in the .EXE directory.

The template will also optionally accept a variable pointing to the help file. The default help topic is the current procedure name.

Demonstration application: HNDCONTROLTPLS.APP

** handytellmecontrol **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: APP HELP SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDWindow
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyTellMeControl control template places a standard text control on your application window. It also creates an embeddable instance of the HNDWindow Classes. The control serves as a message or help control. On the other template buttons, complete the text that you want to initially display.
Demonstration application: HNDCONTROLTPLS.APP

** handytellmecontrol_ewf **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: APP HELP SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDWindow
PARENT: EmbedWindowFunctions
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyTellMeControl_EWF control template places a standard text control on your application window. The control serves as flat, multi-line message or help control. On the other template buttons, complete the text that you want to initially display.
This template is a child of EmbedWindowFunctions, hence the suffix _EWF at the end of its name. It uses the HNDWindow Class instance created by that class to manage the text on this control.
Demonstration application: HNDCONTROLTPLS.APP
This template is a child template of CHT EmbedWindowFunctions and as such, that template must be present before this one can be added.

** visithandycontrol **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: APP HELP SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDWindow
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

VisitHandyControl control template places a single button control on your application window. It also creates an embeddable instance of the HNDWindow Classes. Push the control, to shell to your Internet Browser and visit The Clarion Handy Tools web site at https://www.cwhandy.ca.
Demonstration application: HNDCONTROLTPLS.APP

** visitmecontrol **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: APP HELP SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDWindow
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

VisitMeControl control template mimics a web hyperlink on your application window. Click the hyperlink control, to shell to your Internet Browser and visit a website or launch a local HTML, PDF or HELP document of your choice.
Demonstration application: HNDCONTROLTPLS.APP

** visitmecontrol_ewf **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: APP HELP SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDWindow
PARENT: EmbedWindowFunctions
  

DESCRIPTION:

©CLARION HANDY TOOLS

VisitMeControl_EWF control template mimics a web hyperlink on your application window. It requires that the EmbedWindowFunctions template be placed on the window first. Clicking the link placed by this template starts your default Internet browser, enabling you to jump to the web site of your choice. It shares an embeddable instance of the HNDWindow Classes.
This template is a child template of CHT EmbedWindowFunctions and as such, that template must be present before this one can be added. Click the hyperlink control, to shell to your Internet Browser and visit a website or launch a local HTML, PDF or HELP document of your choice.
Demonstration application: HNDCONTROLTPLS.APP

(TIER-2) APP VERSIONING
** appbuilddatetimestamp **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: APP VERSIONING
SCOPE: (TIER-2)
CLASSES: None
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

AppBuildDateTimeStamp control template places a compile-time date/time stamp on your window indicating when the application was last generated and compiled.
Demonstration application: HNDCONTROLTPLS.APP

** appbuildnumberstamp **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: APP VERSIONING
SCOPE: (TIER-2)
CLASSES: None
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

AppBuildNumberStamp control template places a compile-time build number or version stamp on your window indicating the official "build number" or "version" of your application. Once the template has been applied you need only to insert your Build/Version EQUATE and recompile.
NOTE: The CHT global template AACHTControlPanel creates an application "version" stamp called HPROP:AppVersionEx that can be easily modified on that template's interface and provides a "Notes-To-Myself" field to which version-specific change notes may be added. Example application: HNDCONTROLTPLS.APP

** appcopyrightstamp **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: APP VERSIONING
SCOPE: (TIER-2)
CLASSES: None
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

AppCopyRightStamp control template places a compile-time copyright stamp on your window indicating an official copyright notice about your application. Once the template has been applied you only need only to insert the EQUATE containing your copyright stamp and recompile.
Demonstration application: HNDCONTROLTPLS.APP

(TIER-2) CALCULATOR SUPPORT
** handycalcentrycontrol_ecf **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: CALCULATOR SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDCalcControl
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyCalcEntryControl_ECF control template places a numeric entry control on your application window along with a button that pops up a CHT HandyCalc multipurpose calculator.
The entry field value is passed into the calculator, where it may be manipulated via calculator functions. The resulting calculation can be accepted, in which case the entry control is updated, or rejected, leaving your entry control intact.
This template is a child of EmbedCalculatorFunctions (hence the _ECF suffix in the name). That means, EmbedCalculatorFunctions must first be populated before this template becomes visible as a control that may be populated on your procedure windows. The control brings with it a DECIMAL variable which is automatically populated to the control via PROP:Use. You can, of course change this by selecting a new variable from the DATA button or from your DICTIONARY.
The field picture may also be re-assigned as needed. A thread option on this template allows the developer to start the calculator on a dedicated thread that services only the control populated by this template. This feature lets you attach unique instances of the HNDCalcControl class to multiple entry controls on the procedure window without causing cross-contamination from one calculator value to the next or one entry control to the next.

** handycalctapeentrycontrol_ecf **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: CALCULATOR SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDCalcControl
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyCalcTapeEntryControl_ECF control template places a numeric entry control on your application window along with a button that pops up a CHT HandyCalc multipurpose tape-style calculator.
The entry field value is passed into the calculator, where it may be manipulated via calculator functions. The resulting calculation can be accepted, in which case the entry control is updated, or rejected, leaving your entry control intact.
This template is a child of EmbedCalculatorFunctions (hence the _ECF suffix in the name). That means, EmbedCalculatorFunctions must first be populated before this template becomes visible as a control that may be populated on your procedure windows. The control brings with it a DECIMAL variable which is automatically populated to the control via PROP:Use. You can, of course change this by selecting a new variable from the DATA button or from your DICTIONARY.
The field picture may also be re-assigned as needed. A thread option on this template allows the developer to start the calculator on a dedicated thread that services only the control populated by this template. This feature lets you attach unique instances of the HNDCalcControl class to multiple entry controls on the procedure window without causing cross-contamination from one calculator value to the next or one entry control to the next.

** handyregionbutton **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: CALCULATOR SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDWindow
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyRegionButton control template mimics a flat button on your application window suggested for use in highly graphical environments like the example application HNDCDROMEXAMPLE.APP.
This active control can perform all of the same operations normally performed by a standard button control. Click to start a procedure, run an application or shell to your Internet Browser and visit a website or launch a local HTML, PDF or HELP document of your choice.
The button changes its background and text colors (as configured) when the user's mouse scrolls over it. Colors are configured directly on the template. Actions are assigned via embedding. An embedbutton appears directly on the template to take the developer to the accepted embed point.
Demonstration application: HNDCONTROLTPLS.APP

(TIER-2) DATES AND CALENDARS
** handycomcalendarcontrol **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: DATES AND CALENDARS
SCOPE: (TIER-2)
CLASSES: HNDMscalClass
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyCOMCalendarControl control template places a MicroSoft COM Calendar Control from MSCAL.OCX on your application window. The calendar control provides a full-feature, user-configurable display calendar that lets users easily select and change a date. The template incorporates a CHT COM Class Wrapper called HNDMscalClass into your procedure.
A Calendar Control provides a simple and intuitive interface through which to exchange date information with a user.
See HNDMSCAL.INC, HNDMSCAL.CLW and HNDMSCAL.TLB to study the header, code module and method interfaces respectively. A demonstration application called HNDCMCAL.APP illustrates use of the template and calling HNDMscalClass Class methods.

** handycomdatepickercontrol **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: DATES AND CALENDARS
SCOPE: (TIER-2)
CLASSES: HNDDatePicker
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyCOMDatePickerControl control template places a MicroSoft COM Date Picker Control from MSCOMCT2.OCX on your application window. The date picker control provides a full-feature, user-configurable drop-down calendar that lets users easily select and change a date. The template incorporates a CHT COM Class Wrapper called HNDDatePicker into your procedure.
A date and time picker (DTP) control provides a simple and intuitive interface through which to exchange date and time information with a user. See HNDDTPKR.INC, HNDDTPKR.CLW and HNDDTPKR.TLB to study the header, code module and method interfaces respectively.

** handypopupcalendarbutton **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: DATES AND CALENDARS
SCOPE: (TIER-2)
CLASSES: HNDDates
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyPopupCalendarButton code template incorporates the HNDDates Classes and drops code for a popup calendar in the current embed position. The calendar requires 11 standard icons, included with your Clarion Handy Tools install set. These icons should be visible on the path established in Clarion's redirection (.RED) file.
The template adds the required icons to the project list where you can see them, in case you've misplaced them for any reason. Example application: HNDCAL.APP
Demonstration application: HNDCONTROLTPLS.APP

(TIER-2) DISK FILES SUPPORT
** embeddiskfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: DISK FILES SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDDisk
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedDiskFunctions extension creates a single, local instance of the HNDDisk Classes. CHT's HNDDISK class derives from HNDUTIL. See header files HNDDISK.INC and HNDUTIL.INC for a list of methods and method prototypes to discover a wealth of functionality no developer worth his salt should ever be without.
Together these classes provide a wide variety of low-level disk and file-oriented utility functions that keep "HANDY" operations like creating directories and building lists of files in your directories, plus a few hundred more similar operations, at your fingertips. All operations in these classes are pure Clarion code and require no DLLs to be incorporated into your applications.
All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.

** embedhnddiskexfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: DISK FILES SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDDiskEx
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedHNDDiskExFunctions extension creates a single, local instance of the HNDDiskEx Class located in CHT code modules HNDDSKEX.INC (Header), HNDDSKEX.CLW (Code).
All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.
Example application: HNDSETUP.APP

** embedutilityfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: DISK FILES SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDUtil
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedUtilityFunctions extension creates a single, local instance of the HNDUtil Classes.
HNDUTIL.INC and HNDUTIL.CLW are inluded in your procedure. All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.

** globalincludehnddiskexfunction... **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: DISK FILES SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDDiskEx HNDDisk HNDUtil
PARENT: AACHTControlPanel
  

DESCRIPTION:

©CLARION HANDY TOOLS

GlobalIncludeHNDDiskExFunctions extension template globally instantiates a single instance of the CHT HNDDiskEx class.
You may change the default instance name if you wish.
This template is a child of AACHTControlPanel and can only be populated to your application once AACHTControlPanel has been added.

** globalincludehnddiskfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: DISK FILES SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDDisk
PARENT: AACHTControlPanel
  

DESCRIPTION:

©CLARION HANDY TOOLS

GlobalIncludeHNDDiskFunctionsextension template globally instantiates a single instance of the CHT HNDDisk class.
You may change the default instance name if you wish.
This template is a child of AACHTControlPanel and can only be populated to your application once AACHTControlPanel has been added. The template dialog provides for ICON and PROMPT COLOR configuration for the HNDDisk FileSelection Dialog in co-ordination with the ApplicationImagesEx template's application-level image include capabilities.

** handydriveselectorcontrol **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: DISK FILES SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDDisk
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyDriveSelectorControl control template places a drive selector control on your application window. It also creates an embeddable instance of the HNDDisk Classes.
The control displays the drive letters of all available drives and the drive label if there is one.
Demonstration application: HNDCONTROLTPLS.APP

** handyfiledialogselectbutton_ed... **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: DISK FILES SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDDisk
PARENT: EmbedDiskFunctions
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyFileDialogSelectButton_EDF control template places a button on your window that, when clicked, opens a file dialog and returns the selected file to an entry control, also provided by the template. The entry control, once a value has been selected into it, has its value preserved in the application's configuration system, using the ABC IniFile infrastructure provided by ABC on all standard applications.
This template is a child of CHT template EmbedDiskFunctions which must first be available on the procedure before this extended control becomes visible for selection and placement on your procedure window.

** handyfiledialogselectbutton_ed... **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: DISK FILES SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDDiskEx
PARENT: EmbedHNDDiskExFunctions
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyFileDialogSelectButton_EDFEX control template places a button on your window that, when clicked, opens a file dialog and returns the selected file to an entry control, also provided by the template. The entry control, once a value has been selected into it, has its value preserved in the application's configuration system, using the ABC IniFile infrastructure provided by ABC on all standard applications.
This template is a child of CHT template EmbedHNDDiskExFunctions (hence _EDFEX) which must first be available on the procedure before this extended control becomes visible for selection and placement on your procedure window.

** handyfiledialogselectbutton_es... **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: DISK FILES SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDShell
PARENT: EmbedShellFunctions
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyFileDialogSelectButton_ESHF control template places a button on your window that, when clicked, opens a file dialog and returns the selected file to an entry control, also provided by the template.
The entry control, once a value has been selected into it, has its value preserved in the application's configuration system, using the ABC IniFile infrastructure provided by ABC on all standard applications.
This template is a child of CHT template EmbedShellFunctions which must first be available on the procedure before this extended control becomes visible for selection and placement on your procedure window.

** handyfiledialogselectbutton_eu... **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: DISK FILES SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDUtil
PARENT: EmbedUtilityFunctions
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyFileDialogSelectButton_EUTF control template places a button on your window that, when clicked, opens a file dialog and returns the selected file to an entry control, also provided by the template. The entry control, once a value has been selected into it, has its value preserved in the application's configuration system, using the ABC IniFile infrastructure provided by ABC on all standard applications.
This template is a child of CHT template EmbedUtilityFunctions which must first be available on the procedure before this extended control becomes visible for selection and placement on your procedure window.

** handyfiledialogselectbutton_hc... **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: DISK FILES SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDComZipClass
PARENT: HandyCOMZipperControl
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyFileDialogSelectButton_HCZC control template places a button on your window that, when clicked, opens a file dialog and returns the selected file to an entry control, also provided by the template. The entry control, once a value has been selected into it, has its value preserved in the application's configuration system, using the ABC IniFile infrastructure provided by ABC on all standard applications.
This template is a child of CHT template HandyCOMZipperControl which must first be available on the procedure before this extended control becomes visible for selection and placement on your procedure window.

** handyfileselectorcontrol **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: DISK FILES SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDDisk
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyFileSelectorControl control template places a file selector control on your application window. It also creates an embeddable instance of the HNDDisk Classes.
When clicked, the control displays a filter-enabled file selector browse capable of finding and delimiting any file or file type on your system. The template may be configured on the template interface to find files only or directories only. This setting is actually a class property which can be changed at run-time without needing to reconfigure the template settings.
Demonstration application: HNDCONTROLTPLS.APP
The "CODE-TABS" on this template are new of Build 27A.03.00. They provide the developer with a means to "hook" code onto File Selector Class Methods by inserting code into the related template text control and to have the template place your code into the correct location and have it executed when that method is called from anywhere in the class.
To determine if a given "CODE-TAB" will drop your code where it's needed, experiment first, by dropping a comment followed by opening the EMBEDITOR and searching for your comment.

(TIER-2) HYPERLINK SUPPORT
** handyhyperlink **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: HYPERLINK SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDWindow
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyHyperLink control template mimics a web hyperlink on your application window. They hyperlink control can perform all of the same operations normally performed by a standard button control.
Click the hyperlink control, to start a procedure, run an application or shell to your Internet Browser and visit a website or launch a local HTML, PDF, MP4 (video) or HELP document of your choice.
Demonstration application: HNDCONTROLTPLS.APP

** handyhyperlink_ewf **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: HYPERLINK SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDWindow
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyHyperLink_EWF control template mimics a web hyperlink on your application window. They hyperlink control can perform all of the same operations normally performed by a standard button control. Click the hyperlink control, to start a procedure, run an application or shell to your Internet Browser and visit a website or launch a local HTML, PDF, MP4 (video) or HELP document of your choice.
Demonstration application: HNDCONTROLTPLS.APP

(TIER-2) PROCEDURE START SUPPORT
** handyprocedurestartbutton **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: PROCEDURE START SUPPORT
SCOPE: (TIER-2)
CLASSES: None
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyProcedureStartButton template will help you to formulate a call to any procedure and surround that procedure call, before and after, with dialog-based embed code, placed right on the template. Pass parameters to the procedure (optionally). Multiple buttons can be populated on the same window, calling different procedures.
The "CODE-TABS" on this template are new of Build 27A.03.00. They provide the developer with a means to "hook" code into the procedure by inserting code into the related template text control and to have the template place your code into the correct location and have it executed by the procedure.
To determine if a given "CODE-TAB" will drop your code where it's needed, experiment first, by dropping a comment followed by opening the EMBEDITOR and searching for your comment.

(TIER-2) PROGRESS SUPPORT
** handycomprogressbarcontrol **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: PROGRESS SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDComProgress
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyCOMProgressBarControl control template places a MicroSoft COM Progress Bar Control from MSCOMCTL.OCX on your application window. This control provides a full-feature, user-configurable vertical/horizontal/flat/3D Monochrome progress indicator. The template incorporates a CHT COM Class Wrapper called HNDComProgressBar into your procedure.
With a progress bar, users can follow the progress of a lengthy operation. A progress bar may show either an approximate percentage of completion (determinate) or indicate that an operation is ongoing (indeterminate).
Microsoft usability studies have shown that users are aware of response times of over one second. Consequently, you should consider operations that take two seconds or longer to complete to be lengthy and in need of progress feedback.
This control template is REDACTED and will be removed from the toolkit. Clarion has had its own progress control for years now so this template, which was introduced in an early Clarion that didn't have a built in progress control, is not needed.
See HNDPRGBR.INC, HNDPRGBR.CLW and HNDPRGBR.TLB to study the header, code module and method interfaces respectively. A demonstration application called HNDCONTROLTPLS.APP illustrates use of the template and calling HNDComProgressBar Class methods.

(TIER-2) PROJECT BUILDER SUPPORT
** hndcmpcontrolpanel **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: PROJECT BUILDER SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDClarionDDE
PARENT: AACHTControlPanel
  

DESCRIPTION:

©CLARION HANDY TOOLS

HNDCMPControlPanel global extension template enables your application to be controlled from the CHT Compile Manager. The settings listed below may be changed on an application-level basis from the compile manager control panel.

  1. Switch between EXE and DLL compilation
  2. LARGE_ADDRESS, DYNAMIC_BASE, DEP to .EXP
  3. Change link mode from LIB (library) to DLL
  4. Switch between Debug and Release mode
  5. Switch between expire and no-expire mode
  6. Switch from HNDFBACK.TRN / HNDCUSTOM.TRN
  7. Adjust processor processor affinity of the EXE
  8. Code Sign executable with developer certificate
  9. Export the app to TXA
  10. Copy executable to a configured target directory
  11. Stop compilation on error or continue to next
  12. Generate app discovery HTML to target path
  13. View compile log for application with full details

HNDCMPControlPanel is a child of global template AACHTControlPanel and as such, must be installed to the global extensions area by first installing AACHTControlPanel and inserting with that template selected.

(TIER-2) QUERY SUPPORT
** handyqueryprocessbutton **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: QUERY SUPPORT
SCOPE: (TIER-2)
CLASSES: None
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyQueryProcessButton template will help you to formulate a call to a process procedure extended with a template called HandyQueryProcessLimiter.
It passes a query variable built with QueryParsingFilterControl - usually on a browse - and limits the processed records to only those records matching the current query.

** handyqueryprocessbutton_qpfc **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: QUERY SUPPORT
SCOPE: (TIER-2)
CLASSES: None
PARENT: Window(ABC), QueryParsingFilterControl
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyQueryProcessButton_QPFC template will help you to formulate a call to a process procedure extended with a template called HandyQueryProcessLimiter.
It passes a query variable built with QueryParsingFilterControl - usually on a browse - and limits the processed records to only those records matching the current query. An ORDER BY clause matching current browse order may optionally be incorporated into the query.
This template is a child template of CHT QueryParsingFilterControl and as such, that template must be present before this one can be added.

** handyqueryprocesslimiterqbcont... **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: QUERY SUPPORT
SCOPE: (TIER-2)
CLASSES: None
PARENT: HandyQueryProcessLimiter
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyQueryProcessLimiterQBControl template creates a companion Query Builder control for CHT HandyQueryProcessLimiter. It can query any field in your process including unkeyed fields and fields in joined tables as long as they are declared in the "Query Hot Fields" dialog provided on our "Limiter" template.
Two display controls are included, each of which displays a different version of the query.
The CHT: display control displays the CHT query language version of your query. The SQL: display control displays the SQL query language version of your query if your browse is set to "Use SQL", otherwise the Clarion query language version of your query is displayed. One or both of these display controls may be deleted from your window if you do not wish to display the current query.
This template is a child template of CHT HandyQueryProcessLimiter and as such, that template must be present before this one can be added.

** handyqueryreportbutton **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: QUERY SUPPORT
SCOPE: (TIER-2)
CLASSES: None
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyQueryReportButton template will help you to formulate a call to a report procedure extended with a template called HandyQueryReportLimiter. It passes a query variable built with QueryParsingFilterControl - usually on a browse - and limits the processed records to only those records that match the current browse query.

** handyqueryreportbutton_qpfc **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: QUERY SUPPORT
SCOPE: (TIER-2)
CLASSES: None
PARENT: Window(ABC), QueryParsingFilterControl
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyQueryReportButton_QPFC template will help you to formulate a call to a report procedure extended with a template called HandyQueryReportLimiter. It passes a query variable built with QueryParsingFilterControl - usually on a browse - and limits the processed records to only those records that match the the current browse query. An ORDER BY clause matching current browse order may optionally be incorporated into the query.
This template is a child template of CHT QueryParsingFilterControl and as such, that template must be present before this one can be added.

** handyqueryreportlimiterqbcontr... **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: QUERY SUPPORT
SCOPE: (TIER-2)
CLASSES: None
PARENT: HandyQueryReportLimiter
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyQueryReportLimiterQBControl template creates a companion Query Builder control for CHT HandyQueryReportLimiter. It can query any field in your report including unkeyed fields and fields in joined tables as long as they are declared in the "Query Hot Fields" dialog provided on our "Limiter" template. Two display controls are included, each of which displays a different version of the query.
The CHT: display control displays the CHT query language version of your query. The SQL: display control displays the SQL query language version of your query if your browse is set to "Use SQL", otherwise the Clarion query language version of your query is displayed. One or both of these display controls may be deleted from your window if you do not wish to display the current query.
This template is a child template of CHT HandyQueryReportLimiter and as such, that template must be present before this one can be added.

** handyquerytracingbutton_hqpl **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: QUERY SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDParse HNDBrwFilter
PARENT: HandyQueryProcessLimiter
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyQueryTracingButton_HQPL control template places a button on your window that enables DebugView-based query tracing on CHT process extension template, HandyQueryProcessLimiter.
This is a child template of HandyQueryProcessLimiter, which must first be available on the procedure before this extended control becomes visible for selection and placement on your procedure window.

** handyquerytracingbutton_hqrl **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: QUERY SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDParse HNDBrwFilter
PARENT: HandyQueryReportLimiter
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyQueryTracingButton_HQRL control template places a button on your window that enables DebugView-based query tracing on CHT report extension template, HandyQueryReportLimiter.
This is a child template of HandyQueryReportLimiter, which must first be available on the procedure before this extended control becomes visible for selection and placement on your procedure window.

** popfavoritequeries_qpfc **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: QUERY SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDBrwFilter
PARENT: QueryParsingFilterControl
  

DESCRIPTION:

©CLARION HANDY TOOLS

PopFavoriteQueries_QPFC template creates a set of controls that pop up pre-built queries and query macros saved to a file defined in your dictionary and inserts them into QueryParsingFilterControl, followed by a PostQuery() command to apply the query (or macro) to your data view whether local or remote. See the predefined tables "PreQuery" and "PreMacro" in HNDO.DCT. These tables should be imported into your app's dictionary as a model for pre-defined queries or macros data tables. The table names and type (ISAM or SQL) doesn't really matter to this template, nor do the file prefixes. However, field names and data size definitions are required to be as defined in the PreQuery and PreMacro table designs. CHT is planning to provide importable JumpStart procedures for browsing, editing and inserting pre-built queries.
Queries entered on the QPFC control can, of course, be saved into your pre-defined queries table on the fly by users. Deletes of pre-defined queries is also allowed -- no Macro saving or deleting, though. Adding/deleteing controls are provided for queries by the template but these may be hidden if you want to disallow all operations except query and macro selection and execution.
Demo app to look at: HNDCLIENTCL.APP (Client Server Demo).
NOTE: Currently QueryParsingFilterControl, to which this template is an addon, is able to work with Raw ABC browses and CHT FileLoadBrowsextender browses. This QPFC add-on is only implemented for QPFC + ExplorerBrowse or QPFC + HandyMarkerBrowse or QPFC + ListBoxBrowseExtender.

** queryparsingfiltercontrol **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: QUERY SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDBrwFilter
PARENT: BrowseBox(ABC), Report(ABC), Process(ABC), ExplorerBrowse, HandyMarkerBrowse, ListBoxBrowseExtender
  

DESCRIPTION:

©CLARION HANDY TOOLS

QueryParsingFilterControl template creates a query control capable of parsing a programmer-determined query language which can be used to filter data sets. Press the "Query keywords" button to modify the query language or query short forms. When populated on any ABC browse or list box, this template can place the appropriate code to force a filtered browse refresh when a query is entered or cleared. Additional configuration is required depending on which other Clarion Handy Tools templates (if any) you have in place on your browse. This template can also be used in conjuction with the ABC report template to produce filtered reports.
The most recent revision allows for more flexibility in control naming when this template is used with ListBoxBrowseExtender. This revision allows an option for query keywords to come directly from the translation file rather than being generated into the app from the KEYWORDS dialog. There is also now an option to include a number of internal macros representing the days of the week and the months of the year. By default the macros option is off and the query keywords from translation file is off. The reason for these "Off" defaults is for backward compatibility since these options did not exist prior to January 2013. Unless the developer turns these "On" his app behaves as always.

** queryparsingfiltercontrolapply... **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: QUERY SUPPORT
SCOPE: (TIER-2)
CLASSES: None
PARENT: QueryParsingFilterControl
  

DESCRIPTION:

©CLARION HANDY TOOLS

QueryParsingFilterControlApplyButton template places a companion, button control for CHT Template QueryParsingFilterControl. It modifies that control's behavior in the following ways:
1) To allow query selection without immediate query execution.
2) To allow a selected query to be edited before execution.
3) To allow a new query to be edited before execution.
4) To execute the query when the "Apply" button is clicked.
This template has no settings or switches that need to be set.
This template is a child template of CHT QueryParsingFilterControl and as such, that template must be present before this one can be added. The behavior listed above is applied to QPFC by the simple addition of this template to your procedure window.
However, it assumes that one of the following CHT templates is also present: ExplorerBrowse, HandyMarkerBrowse, or ListBoxBrowseExtender.

(TIER-2) REGISTRY SUPPORT
** embedregistryfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: REGISTRY SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDRegistry
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedRegistryFunctions extension creates a single, local instance of the HNDRegistry Classes. All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.

** globalincluderegistryfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: REGISTRY SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDRegistry
PARENT: AACHTControlPanel
  

DESCRIPTION:

©CLARION HANDY TOOLS

GlobalIncludeRegistryFunctionsextension template globally instantiates a single instance of the CHT HNDRegistry class.
You may change the default instance name if you wish.
This template is a child of AACHTControlPanel and can only be populated to your application once AACHTControlPanel has been added.

(TIER-2) REPORT SUPPORT
** reporthidewindow **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: REPORT SUPPORT
SCOPE: (TIER-2)
CLASSES: None
PARENT: Report(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

ReportHideWindow control causes an ABC Report Window to stay hidden while the report is running. This is a desireable condition for servers to keep windows from popping up and causing server interruptions.
When printing to PDF, the progress window that would normally pop up is also suppressed.

(TIER-2) SOUND AND VIDEO
** embedavifunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: SOUND AND VIDEO
SCOPE: (TIER-2)
CLASSES: HNDAvi
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedAVIFunctions extension creates a single, local instance of the HNDAvi Classes. All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion. Despite its name, this class provides an interface to all MS Windows MCI functionality.
At the moment it provides specific support for playing .MP3, .WAV, .AVI, .MID, .MWV, and .MPG files. For example: OBJ.PlayMp3() and OBJ.PlayWave(). However, some of the more abstract methods like OBJ.PlayBatch(), OBJ.Command() and OBJ.PlayItem() will work with any legal MCI device file.

** embedanimationobject **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: SOUND AND VIDEO
SCOPE: (TIER-2)
CLASSES: HNDAnimate
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedAnimationObject template creates a single, local instance of the CHT HNDAnimate class, located in CHT code modules HNDANIMA.INC (Header), HNDANIMA.CLW (Code). All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion. Example application: HNDCPYDM.APP

(TIER-2) SPELL CHECK SUPPORT
** handyspellcheckcontrol **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: SPELL CHECK SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDUtil HNDSpell
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandySpellCheckControl control template brings low-overhead, multi-language spell-checking to your applications. It drops a single "Spell Check" button onto your window to trigger spell-checking in entry and text controls populated on the procedure window.
Checking can be triggered for the entire window using the button provided or individual controls can be check using a configurable hot key. Further, individual words may be checked by selecting the word and using a configurable hot key. Initially we are providing, on request, lexicons for the following languages: English, Afrikaans, Croatian, French, German, Greek, Italian, Netherlands, Portugese, Russian, Spanish, Swedish, Ukranian. Since these are derived from open-source word lists, we will ask developers seeking non-English dictionaries to help us develop a common-words list for their chosen language. A common-words list is a set of the top 25-50 most commonly used words. In English, for example, these are words like "the", "and", "to", and so forth. For a working, English-language example application see HNDSPELLCHECKDEMO.APP.
This template provides for spell-check field selection. By default, all TEXT and ENTRY controls are spell-checked when the "Spell Check" button is clicked. The template now provides the opportunity to override that default behaviour and to select specific fields to be checked, in which case only selected fields are processed.

(TIER-2) SPLASH SCREEN SUPPORT
** dontshowthissplashagain **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: SPLASH SCREEN SUPPORT
SCOPE: (TIER-2)
CLASSES: None
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

DontShowThisSplashAgain control template provides a single checkbox which is intended for placement on ABC Splash Windows or CHT Jumpstart Splash Windows.

Initially, the checkbox provided is unchecked. Once checked the Splash Window closes and will not re-appear the next time you run the application.

(TIER-2) SPLITTER CONTROLS
** embedhndsplitter **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: SPLITTER CONTROLS
SCOPE: (TIER-2)
CLASSES: HNDSplitter
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedHNDSplitter extension template attaches CHT Class HNDSplitter, (based in HNDSPLITTER.INC/HNDSPLITTER.CLW) to your procedure window and it acts as the base template for two related control templates called: HandySplitBarHorizontal and HandySplitBarVertical.
Note that these two control templates are not visible for application to your window until this EmbedHNDSplitter template is first attached to your procedure.
Example application: HNDSPLITTERTEST.APP.

** handysplitbarhorizontal **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: SPLITTER CONTROLS
SCOPE: (TIER-2)
CLASSES: HNDSplitter
PARENT: Any ABC Window
  

DESCRIPTION:

©CLARION HANDY TOOLS

Before this template is visible to be dropped on your procedure window, its parent template "EmbedHNDSplitter" must be first added as an extension to your procedure. HandySplitBarHorizontal provides a control that may be dragged east or west in order to move other window controls out of the way or to stretch or shrink them.
Demo Applications: HNDSPLITTERTEST.APP

** handysplitbarvertical **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: SPLITTER CONTROLS
SCOPE: (TIER-2)
CLASSES: HNDSplitter
PARENT: Any ABC Window
  

DESCRIPTION:

©CLARION HANDY TOOLS

Before this template is visible to be dropped on your procedure window, its parent template "EmbedHNDSplitter" must be first added as an extension to your procedure. HandySplitBarVertical provides a control that may be dragged north or south in order to move other window controls out of the way or to stretch or shrink them.
Demo Applications: HNDSPLITTERTEST.APP

(TIER-2) UPDATE FORM SUPPORT
** browselesseditform **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: UPDATE FORM SUPPORT
SCOPE: (TIER-2)
CLASSES: None
PARENT: BrowseBox(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

BrowselessEditForm template lets you open an edit form on your data table without having to use a browse ahead of it. The template populates three buttons: Insert, Previous and Next. Insert lets you add new records while Previous and Next let you navigate the table records. The data table requires no keys although tables with keys may be used.
The form normally opens looking at the physically-first record in the table. You are able to set an optional switch on the template interface so that the form can, in fact, be used with a browse. In this case the first record displayed is the record currently selected in your browse. Once in the form, records may be navigated forward and back and multiple records may be inserted in succession.
At EOF and BOF you are given a message indicating that beginning or end of file have been reached.

** chtmultitableupdate **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: UPDATE FORM SUPPORT
SCOPE: (TIER-2)
CLASSES: None
PARENT: Update(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

CHTMultiTableUpdate control template drops a hidden placeholder control onto your ABC update form procedure window. It writes code to perform an ACCESS:FileName.Update() for every table on your form procedure added to the "Other Files" area of the file tree. When used with a CHT ListBoxBrowseExtender browse using the FillFromView() functionality, this allows you to populate fields on your form that are not necessarily in a single table, but in multiple tables accessed by your LBX View design.
Other than positioning from the IDE window editor [optional] no further configurations are necessary on this template interface.

** handyaddresscontrols **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: UPDATE FORM SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDAddressBox HNDNameBox
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyAddressControls control template places four addressing controls that emulate the behavior of Microsoft OutLook's name and address controls. It also creates embeddable instances of the HNDAddressBox Classes and HNDNameBox Classes. Demonstration application: HNDCONTROLTPLS.APP

** handyfieldautocompletecontrol **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: UPDATE FORM SUPPORT
SCOPE: (TIER-2)
CLASSES: None
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyFieldAutoCompleteControl template creates an autocomplete lookup control to assist with completion of a form field which contains a value located in a data table. A state or province name populated on a form is an example of this. By typing a portion of the state name, a lookup is triggered in a state or province table. This same principle applies, of course to any field in any table you configure on the template.

(TIER-2) WINDOW CONTROLS SUPPORT
** embedwindowfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: WINDOW CONTROLS SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDWindow
PARENT: ApplicationImagesEx
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedWindowFunctions extension creates a single, local instance of the HNDWindow Classes.
All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.
EmbedWindowFunctions manages a host of features on your application window, from application-in-system-tray, to window callbacks, to Window Transparency and Transitions.
This template is a child of global template ApplicationImagesEx, which itself is a child of our master global template AACHTControlPanel. These parent-global templates must be populated before this one can be added to any procedure.
As of Build 27A.03 this template provides "CODE-TABS" which implement code insertion points inside your application as an alternative to embedding code. These insertion points are based on embedded code found most frequently in CHT example and utility applications.
To determine if a given "CODE-TAB" will drop your code where it's needed, experiment first, by dropping a comment followed by opening the EMBEDITOR and searching for your comment.

** handycomdigitalclockcontrol **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: WINDOW CONTROLS SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDDigitalClockClass
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyCOMDigitalClockControl control template places a CHT COM Digital Clock Control from HNDDGTLCLOCK.OCX on your application window. Using this template you can place CHT's Digital Clock Control on your application window and write no code.
See HNDDGTL.INC, HNDDGTL.CLW and HNDDGTL.TLB to study the header, code module and method interfaces respectively. A demonstration application called HNDCONTROLTPLS.APP illustrates use of this template.

** handycommediaplayercontrol **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: WINDOW CONTROLS SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDWindowsMediaPlayer
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyCOMMediaPlayerControl control template places a COM Windows Media Player Control on your application window. Windows Media Files provide audio and video services to web pages and can act as sound and video help files and demonstrations. With this control, you can play and control the playing of a variety of media files (.AVI, .WMA, .WMV, .ASX, .WAX, .WVX, .WPL, .DVR-MS, .WMD, .MPG, .MPEG, .M1V, .MP2, .MP3, .MP4, .MPA, .MPE, .MPV2, .M3U, .MID, .MIDI, .RMI, .AIF, .AIFC, .AIFF, .AU, .SND, .WAV, .CDA, .IVF, .MOV, .QT and player skins files .WMZ, .WMS) directly on your application windows.
See HNDWMP.INC, HNDWMP.CLW and HNDWMP.TLB to study the header, code module and method interfaces respectively.

** handycomslidercontrol **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: WINDOW CONTROLS SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDComSlider
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyCOMSliderControl control template places a MicroSoft COM Slider Control from MSCOMCTL.OCX on your application window. The slider control provides a full-feature, user-configurable left/right/up/down slider that lets users easily select and change a value inside a range established on the control.
When the user moves the slider, using either the mouse or the direction keys, the slider sends notification messages to indicate the change to an event called EVENT:HandySliderControl.
The template incorporates a CHT COM Class Wrapper called HNDComSlider into your procedure.
See HNDCSLDR.INC, HNDCSLDR.CLW and HNDCSLDR.TLB to study the header, code module and method interfaces respectively. A demonstration application called HNDCONTROLTPLS.APP illustrates use of the template and calling HNDComSlider Class methods.

** handygradientellipse **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: WINDOW CONTROLS SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDWindow
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyGradientEllipse control template places a gradient-style ellipse control on your window. This can act as a backdrop to a variety of interface controls. While example TYPE and COLOR settings are assumed by the template, these are, of course, under developer control. Demonstration application: HNDCONTROLTPLS.APP

** handygradientroundbox **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: WINDOW CONTROLS SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDWindow
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyGradientRoundBox control template places a gradient-style rounded box control on your window. This can act as a backdrop to a variety of interface controls. While example TYPE and COLOR settings are assumed by the template, these are, of course, under developer control.
Demonstration application: HNDCONTROLTPLS.APP

** handypopupmenubutton **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: WINDOW CONTROLS SUPPORT
SCOPE: (TIER-2)
CLASSES: None
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyPopupMenuButton control template lets you easily create popup menus connected to a button dropped on your application window by the template. For even greater design flexibility, hide the button created with this template and post EVENT:Accepted from another control.
Menu execution code may be provided in one of three ways:
1) selecting an executable,
2) entering embed code on the template or
3) entering embed code, inline inside the embed points provided. A CHT Demo application called HandyPopupMenuButton illustrates 5 instances of this template populated on the same window.
Popup menu configuration now includes full font, size, boldness, color control and programmatic enable/disable capability.

** handyrulercontrol **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: WINDOW CONTROLS SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDWindow
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyRulerControl template creates a horizontal/vertical ruler set which can be used to border an image or workspace for dimensioning. The rulers may be scaled to give the effect of zooming nearer to or further from the graphic workspace.
All ruler properties such as fill color, text color, division marker color, location of ruler zero point may be set directly on the screen designer work surface. Ruler length (inches only in this release) is set from the "Ruler Length" tab.
Demonstration application: HNDCONTROLTPLS.APP

** handyrunapponwindowtimercontro... **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: WINDOW CONTROLS SUPPORT
SCOPE: (TIER-2)
CLASSES: None
PARENT: HandyTimeEnterAndSaveControl(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyRunAppOnWindowTimerControl control template places a hidden button on your procedure window that places code in the EVENT:Timer embed to count down to a specific time of day and start start an application with a command line parameter. This template is a child of HandyTimeEnterAndSaveControl which must be populated prior to this template becoming available for implementation on your window.

** handyslidercontrol **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: WINDOW CONTROLS SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDSlider
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandySliderControl template places a slider control on your window and creates an embeddable instance of the HNDSlider Classes The control is a standard MS Windows slider capable of generating a value based on the slider's thumb position within a user-determined scale.
An inner range of values within the outer scale, may be imposed on the control. Further, the slider can be made to automatically synchronize itself with an outside value on a user-determined triggering event.
For an interesting example of how to use a CHT Slider control to control a browse to replace the normal vertical slider on the list box, seen HND2.APP, procedure SelectStates().
The "CODE-TABS" on this template are new of Build 27A.03.00. They provide the developer with a means to "hook" code onto Slider Class Methods by inserting code into the related template text control and to have the template place your code into the correct location and have it executed when the method is called from anywhere in the class.
To determine if a given "CODE-TAB" will drop your code where it's needed, experiment first, by dropping a comment followed by opening the EMBEDITOR and searching for your comment.

** handytimeenterandsavecontrol **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: WINDOW CONTROLS SUPPORT
SCOPE: (TIER-2)
CLASSES: None
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyTimeEnterAndSaveControl control template places a spin control and prompt on your window that, formats a time value, that once entered is preserved in the application's configuration system, using the ABC IniFile infrastructure provided by ABC on all standard applications.
The time flash control group portion of this set of controls may be pulled off the window without affecting the template's ability to accept, save, and recall a time value.

** handytoolbargradient **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: WINDOW CONTROLS SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDWindow
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyToolBarGradient control template places gradient properties on your toolbar and sizes itself to the toolbar to act as a backdrop. While example TYPE and COLOR settings are assumed by the template, these are, of course, under developer control.
The template does assume that the window toolbar is given an equate label, for which the template will prompt you and with which the toolbar can be addressed in code statements made by the template.
Demonstration application: HNDCONTROLTPLS.APP

** handytoolbarimage **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: WINDOW CONTROLS SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDWindow
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyToolBarImage control template places a gradient-style image on your toolbar and sizes itself to the toolbar to act as a backdrop. While an example image is assumed by the template, this is, of course, under developer control.
The template does assume that the window toolbar is given an equate label, for which the template will prompt you and with which the toolbar can be addressed in code statements made by the template.

** handywindowdismissbutton **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: WINDOW CONTROLS SUPPORT
SCOPE: (TIER-2)
CLASSES: None
PARENT: EmbedWindowFunctions(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyWindowDismissButton control template places a button on your procedure window that dismisses a window by minimizing and hiding it. This makes the unstated assumption that the window to which this button is applied is the main application window, and the window has been configured with EmbedWindowFunctions to minimize to the Windows Task Bar. This template is therefore a child of EmbedWindowFunctions which must be populated prior to it becoming available to be populated to your window.
Demonstration application: HNDCONTROLTPLS.APP

** handywindowgradient **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: WINDOW CONTROLS SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDWindow
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyWindowGradient control template places gradient properties on your window and sizes itself to the window to act as a backdrop. While example TYPE and COLOR settings are assumed by the template, these are, of course, under developer control.
Demonstration application: HNDCONTROLTPLS.APP

** handywindowgradientblue **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: WINDOW CONTROLS SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDWindow
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyWindowGradientBlue control template places gradient properties on your window and sizes itself to the window to act as a backdrop. While example TYPE and COLOR settings are assumed by the template, these are, of course, under developer control.

** handywindowheaderhider **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: WINDOW CONTROLS SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDWindow
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyWindowHeaderHider control template is used on headerless windows as in the example application HNDCDROMEXAMPLE.APP. This type of window generally uses an image to enhance the visual appeal of the application window.
The traditional window header (title bar) detracts from the look of an image-based application window. However, the window header is required to easily move the window location. This control is dropped at the top of the window and toggles the window title bar on and off as the mouse cursor passes over it.

** handywindowimage **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: WINDOW CONTROLS SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDWindow
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyWindowImage control template places a gradient-style image on your window and sizes itself to the window to act as a backdrop. While an example image is assumed by the template, this is, of course, under developer control.

** handywindowsnotepadbutton_ewf **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: WINDOW CONTROLS SUPPORT
SCOPE: (TIER-2)
CLASSES: None
PARENT: EmbedWindowFunctions , Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyWindowsNotePadButton_EWF control template places a button on your window that opens MS Windows NotePad using "NOTEPAD.EXE". This template is a child of CHT template EmbedWindowFunctions which must first be available on the procedure before this extended control becomes visible for selection and placement on your procedure window.
Demonstration application: HNDCONTROLTPLS.APP

** resizehandles **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: WINDOW CONTROLS SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDSizes
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

ResizeHandles extension template attaches "grip-style" window handles to the bottom right hand corner of your window. Other window controls may be optionally height and/or width synched as the window handle is pulled to stretch or shrink the window. This template creates an instance of the HNDSizes class. As of Feb 2013 it is possible to restrict downsizing of either width or height dimesions of a window below its design-time dimensions in addition to the outright restriction of the entire height or width dimension. This "qualifier" is an extra checkbox for each dimension which may be optionally checked after the fact on any presently full-width, or full-height restricted window.
A "CODE" Tab has been added to allow the insertion of code into the SynchListBox() method. Two text fields provide for insertion of procedure code into the BEFORE generated code and AFTER generated code area.
To determine if a given "CODE-TAB" will drop your code where it's needed, experiment first, by dropping a comment followed by opening the EMBEDITOR and searching for your comment.

** resizehandlescontrol **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: WINDOW CONTROLS SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDSizes
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

ResizeHandlesControl extension template attaches "grip-style" window handles to the bottom right hand corner of your window. Other window controls may be optionally height and/or width synched as the window handle is pulled to stretch or shrink the window.
This template creates an instance of the HNDSizes class.
It is possible to restrict downsizing of either width or height dimesions of a window below its design-time dimensions in addition to the outright restriction of the entire height or width dimension. This "qualifier" is an extra checkbox for each dimension which may be optionally checked after the fact on any presently full-width, or full-height restricted window.
NOTE: This template is identical to the extension template "ResizeHandles" except this version is a "Control" template which can be populated from the window designer and and may be placed automatically on the window by a procedure template.

** wizardbuttons **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: WINDOW CONTROLS SUPPORT
SCOPE: (TIER-2)
CLASSES: None
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

WizardButtons template drops a previous/next button set on your application window and writes the code necessary to allow moving between tabs on a wizard-style tab sheet. Multiple wizard buttons may be populated on the same window.
In that event, be sure to select the tab sheet to which you are connecting your respective button sets.

** wizardlistbox **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: WINDOW CONTROLS SUPPORT
SCOPE: (TIER-2)
CLASSES: None
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

WizardListBox template lets you control movement between wizard-style tabs from an ordinary Clarion listbox. By selecting any listbox item the corresponding tab is brought to the top and becomes active.

Sheet tab labels may be hidden from the user for a clean, tab-less interface. Since movement from tab to tab does not have to be sequential as is the case with Wizard Buttons, this template lends itself best to implementations where a single window performs various related but not necessarily sequentially interdependent functions. For an example, see HNDCMP.APP procedure DefaultSettings().
In this procedure, various HNDCMP.APP configuration settings may be entered on the same window by clicking on any WizardListBox item to move to the corresponding tab to present the relevant interface.

(TIER-2) WINDOWS O/S SUPPORT
** embedshellautocompletefunction... **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: WINDOWS O/S SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDShellAutoComplete
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedShellAutoCompleteFunctions extension creates a single, local instance of the HNDShellAutoComplete Classes. See HNDAUTOC.INC and HNDAUTOC.CLW for the class header and code module for the HNDShelllAutoComplete class underlying this template. All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.

** embedshellfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: WINDOWS O/S SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDShell
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedShellFunctions extension creates a single, local instance of the HNDShell Classes. All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.

** embedshelllinkclassfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: WINDOWS O/S SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDShellLinkClass
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedShellLinkClassFunctions extension creates a single, local instance of the HNDShellLinkClass Classes. All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion. Example Application: HNDBATCHRUNNER.APP
As of Build 27A.03 this template provides "CODE-TABS" which implement code insertion points inside your application as an alternative to embedding code. These insertion points are based on embedded code found most frequently in CHT example and utility applications.
To determine if a given "CODE-TAB" will drop your code where it's needed, experiment first, by dropping a comment followed by opening the EMBEDITOR and searching for your comment.

** globalincludehndshellfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: WINDOWS O/S SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDShell
PARENT: AACHTControlPanel
  

DESCRIPTION:

©CLARION HANDY TOOLS

GlobalIncludeHNDShellFunctions extension template globally instantiates a single instance of the CHT HNDShell class.
You may change the default instance name if you wish.
This template is a child of AACHTControlPanel and can only be populated to your application once AACHTControlPanel has been added.

** globalincludehndshelllinkfunct... **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: WINDOWS O/S SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDShellLinkClass
PARENT: AACHTControlPanel
  

DESCRIPTION:

©CLARION HANDY TOOLS

GlobalIncludeHNDShellLinkFunctions extension template globally instantiates a single instance of the CHT HNDShellLinkClass class.
You may change the default instance name if you wish.
This template is a child of AACHTControlPanel and can only be populated to your application once AACHTControlPanel has been added.

** handyntservicefunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: WINDOWS O/S SUPPORT
SCOPE: (TIER-2)
CLASSES: HNDService
PARENT: AACHTControlPanel
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyNTServiceFunctions template attaches HNDService Classes to your application at the global level and turns your application into a standard NT Service that runs from Services.MSC the windows Services Manager Interface.
HandyNTServiceFunctions is a child of global template AACHTControlPanel and as such, must be installed to the global extensions area by first installing AACHTControlPanel and inserting with that template selected.

(TIER-3) APP TXA SUPPORT
** aaexportprocedure **

  
VERSION: 28A.01.00
TYPE: UTILITY TEMPLATE
CATEGORY: APP TXA SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

AAExportProcedure Utility template exports the named procedure into a .TXA. Once export of the procedure is completed, the .TXA is then processed to remove auto-populated procedure templates ProcedureImagesEx, ProcedureSnapIns and ProcedureTransparentControls, if they are present.

Leaving auto-populated templates of this sort in the .TXA causes duplication and orphaning of the auto-populated template, since there's no mechanism in the Clarion IDE to re-establish a connection with the ProcedureImagesEx instance being imported or the ProcedureSnapIns instance being imported with the parent template instance that performs the procedure-level population of these templates, namely, ApplicationImagesEx , ApplicationSnapIns, ProcedureTransparentControls, EmbedWindowFunctions templates respectively.

** aaimportprocedure **

  
VERSION: 28A.01.00
TYPE: UTILITY TEMPLATE
CATEGORY: APP TXA SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

AAImportProcedure Utility template imports the named procedure into a .TXA. This template assumes you have first exported the procedure being imported using CHT Utility Template AAExportProcedure.
Once import of the procedure is completed, the application will be stripped of any duplicate instances of the following CHT auto-populated templates: ProcedureImagesEx, ProcedureSnapIns and ProcedureTransparentControls.

(TIER-3) BROWSE SUPPORT LBX
** embedview_lbx **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: BROWSE SUPPORT LBX
SCOPE: (TIER-3)
CLASSES: None
PARENT: ListBoxBrowseExtender
  

DESCRIPTION:

©CLARION HANDY TOOLS

The _LBX prefix in this template name indicates that it is a child template associated only with (L)istbox(B)rowseE(X)tender.
This control template generates a Multi-Table view with an accompanying ABC ViewManager for tables added to the Tables Schematic (provided by this template) area of your ListBoxBrowseExtender procedure.

EmbedView_LBX appears only in your list of available control templates when control template, ListBoxBrowseExtender is first added to your window.
It generates VIEW processing code into the HNDFileLoadBrowse.FillFromView placeholder procedure which is able to fill the ListBoxBrowseExtender queue with records from multiple tables as laid out in the file table tree that this template addes to your procedure.

The Clarion VIEW structure created along with the ABC View Manager instantiated allows your app to interact with multiple tables as if they were one, big flat file, as joins between tables are handled internally by the VIEW structure.

** inqueuequerycontrol_lbx **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: BROWSE SUPPORT LBX
SCOPE: (TIER-3)
CLASSES: None
PARENT: ListBoxBrowseExtender
  

DESCRIPTION:

©CLARION HANDY TOOLS

The _LBX suffix on this template name indicates that it is a child template associated only with (L)istbox(B)rowseE(X)tender.
This control template places an ENTRY Control (into which is entered a CHT-QUERY-LANGUAGE value) and a Clear Query BUTTON Control on your ListBoxBrowseExtender procedure.
InQueueQueryControl_LBX appears only in your list of available control templates when control template, ListBoxBrowseExtender is first added to your window.
This query template performs a variety of filtering operations like CONTAINS, STARTSWITH, ENDSWITH, EQUALS, and so on, to limit your LBX browse to only those records that have matching values in the fields referenced in the query string.
InQueueQueryControl_LBX works both in LOCAL DATA MODE using local data tables and Clarion file drivers, as well as in REMOTE DATA MODE via CHT Client Server Connection(s).
Browse refresh data, whichever operating mode is in play, originates from data already in the "MAIN" data queue, filtered data is displayed, while the filter is present, from a temporary "SHADOW" queue.
In other words interacting with this field-specific filter, causes no local table or remote client server table access or any sort. Filtering takes place entirely locally, and operates on broader queue data already present in the main data queue.

** listboxbrowseextender **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: BROWSE SUPPORT LBX
SCOPE: (TIER-3)
CLASSES: HNDFileLoadBrowse
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

This template automatically gives your queue-based listboxes extended characteristics such as Windows-style record marking with shift-click for marking ranges, ctrl-click for toggling and single-click for marking individual records. Full keyboard-only marking support is also provided.


SUMMARY OF KEYSTROKES USED FOR IN-QUEUE RECORD MARKING
  • MouseLeft - Mark record in single record mode.
  • ShiftMouseLeft - Mark end of range between selected and current row.
  • CtrlShiftMouseLeft - Continues marking from selected to current row.
  • CtrlMouseLeft - Toggle record marked/unmarked.
  • CtrlSpace - Same effect as CtrlMouseLeft.
  • ShiftUp - Mark next record up from selected.
  • ShiftDown - Mark next record down from selected.
  • UpKey - Switch to single record mode and move cursor up.
  • DownKey - Switch to single record mode and move cusror down.
  • CtrlUp - Move cursor up with no marking or unmarking.
  • CtrlDown - Move cursor dn with no marking or unmarking.
  • ShiftPgDn - Mark all from selected to top of current page.
  • ShiftPgUp - Mark all from selected to end of current page.
  • ShiftHome - Mark all from selected to first record.
  • ShiftEnd - Mark all from selected to last record.
  • HomeKey - Unmark all and select first record.
  • CtrlHome - Unmark all and select first record.
  • EndKey - Unmark all and select last record.
  • CtrlEnd - Unmark all and select first record.
  • PgUpKey - Unmark all and select last record on page.
  • PgDnKey - Unmark all and select first record on page.
  • CtrlA - Select all.
  • CtrlH - "H" how many selected.


The template adds "Explorer-like" features to your listboxes including column-header-click sort orders, reverse sortation and more.
For FAST ABC-Browse-Template-FREE browses with local data or remote data this template is your ticket to browse data location freedom!
To create a from-scratch ListBoxBrowsExtender procedure that includes a window and a listbox ready for configuration, use the procedure template called "ListBox BrowseExtender Client Server Browse".
Some example applications that read data from files are: HNDPEOPLE_LBX.APP, HNDLBXDM.APP, HNDLBXSQL.APP and HNDLBXSQLEX.APP. Some example applications that DO NOT read from data files are: HNDBULKSIGNER.APP.
NOTE: This template now provides dialogs for template-based conditional column icon assignments.
The "CODE-TABS" on this template are new of Build 27A.03.00. They provide the developer with a means to "hook" code onto LBX Class Methods by inserting code into the related template text control and to have the template place your code into the correct location and have it executed when that method is called from anywhere in the class.
To determine if a given "CODE-TAB" will drop your code where it's needed, experiment first, by dropping a comment followed by opening the EMBEDITOR and searching for your comment.

** maxpreloadrecordcontrol_lbx **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: BROWSE SUPPORT LBX
SCOPE: (TIER-3)
CLASSES: None
PARENT: UniversalQueryControl_LBX
  

DESCRIPTION:

©CLARION HANDY TOOLS

The _LBX suffix on this template name indicates that it is a child template associated only with (L)istbox(B)rowseE(X)tender. This control template drops two controls, a prompt and a spin-number control onto your LBX browse window.
The spin-number control is used to increase or decrease the "LbxMaxLoadTimeRecords" variable created by ListBoxBrowseExtender. filling it with all available records.

When LBX is set to "FillFromCHTServer" this "LbxMaxLoadTimeRecords" controls the number of records initially pre-loaded into the MAIN queue.

Other than positioning and/or cosmetically altering these controls from the IDE window editor [optional] no further configurations are necessary on this template interface.

NOTE:
This template is a child of UniversalQueryControl_LBX so it will not appear in the Clarion ToolBox of selectable Control Templates unless, UniversalQueryControl_LBX is already present on the window.

** popfavoritequeries_lbx **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: BROWSE SUPPORT LBX
SCOPE: (TIER-3)
CLASSES: HNDBrwFilter HNDClnt
PARENT: ListBoxBrowseExtender
  

DESCRIPTION:

©CLARION HANDY TOOLS

This template creates a set of controls that pop up pre-built queries and query macros saved to a file defined in your dictionary and inserts them into a query entry control also provided by the template.
Dropping this template has the combined effect of dropping QueryParsingFilterControl with some features turned off plus PopFavoriteQueries_QPFC and it does so in a single step rather than having to drop the other two templates one after the other.
See the predefined tables "PreQuery" and "PreMacro" in HNDACCES.DCT, HNDO.DCT and HNDLBXDM.DCT.
These tables should be imported into your app's dictionary as a model for pre-defined queries or macros data tables. The table names and type (ISAM or SQL) doesn't really matter to this template, nor do the file prefixes. However, field names and data size definitions are required to be as defined in the PreQuery and PreMacro table designs.
CHT has provided an importable JumpStart procedure for browsing, editing and inserting pre-built queries. See the CHT Jumpstart Procedures interface. Queries entered on the query entry control can, of course, be saved into your pre-defined queries table on the fly by users. Deletes of pre-defined queries is also allowed -- no Macro saving or deleting, though. Adding/deleting controls are provided for queries by the template but these may be hidden if you want to disallow all operations except query and macro selection and execution.
Demo apps to look at: HNDLBXDM.APP and HNDPEOPLE_LBX.APP

** prefilterbuttons_lbx **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: BROWSE SUPPORT LBX
SCOPE: (TIER-3)
CLASSES: None
PARENT: ListBoxBrowseExtender
  

DESCRIPTION:

©CLARION HANDY TOOLS

The _LBX suffix on this template name indicates that it is a child template associated only with (L)istbox(B)rowseE(X)tender.
This control template drops two buttons (Clear & Refresh), (Set & Refresh) onto your LBX browse window. The "Clear & Refresh" button clears the load-time browse pre-filter and refreshes the browse and filling it with all available records.
The "Set & Refresh" re-establishes the load-time browse pre-filter and refreshes the browse, thus filling with only those records that match this pre-filter.

Other than positioning and/or cosmetically altering the buttons from the IDE window editor [optional] no further configurations are necessary on this template interface.

** sortorderfieldfilter_lbx **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: BROWSE SUPPORT LBX
SCOPE: (TIER-3)
CLASSES: None
PARENT: ListBoxBrowseExtender
  

DESCRIPTION:

©CLARION HANDY TOOLS

The _LBX suffix on this template name indicates that it is a child template associated only with (L)istbox(B)rowseE(X)tender.
This control template places an ENTRY Control (into which is entered a filter value) and a Clear Filter BUTTON Control, onto your ListBoxBrowseExtender procedure window.
SortOrderFieldFilter_LBX appears only in your list of available control templates when control template, ListBoxBrowseExtender is first added to your window.
This query template performs a CONTAINS query (filter) using INSTRING() to limit your LBX browse to only those records that CONTAIN a matching value in the current sort-order field active on your LBX browse.
SortOrderFieldFilter_LBX works both in LOCAL DATA MODE using local data tables and Clarion file drivers, as well as in REMOTE DATA MODE via CHT Client Server Connection(s).
Browse refresh data originatesw, of the operating mode is in play, directly from the data table(s). In other , interacting with this field-specific filter, causes the browse to re-access either the file drivers for new data or the remote Client Server for new data, depending on the operating mode in play.

** universalquerycontrol_lbx **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: BROWSE SUPPORT LBX
SCOPE: (TIER-3)
CLASSES: None
PARENT: ListBoxBrowseExtender
  

DESCRIPTION:

©CLARION HANDY TOOLS

The _LBX suffix on this template name indicates that it is a child template associated only with (L)istbox(B)rowseE(X)tender.
This control template places three controls, ENTRY Control (into which is entered a CHT-QUERY-LANGUAGE value), a Clear Query BUTTON Control and a MAIN or SHADOW QUEUE toggle button, on your ListBoxBrowseExtender procedure.
The UniversalQueryContro_LBX template name derives from the fact that this control issues a query that fills and displays either the MAIN browse queue (from DATA SOURCE, local or remote) or it fills and displays the SHADOW browse queue, by copying from matching records in the MAIN QUEUE. UniversalQueryControl_LBX appears only in your list of available control templates when control template, ListBoxBrowseExtender is first added to your window.
This query template performs a variety of filtering operations like CONTAINS, STARTSWITH, ENDSWITH, EQUALS, and so on, to limit your LBX browse to only those records that have matching values in the fields referenced in the query string.
UniversalQueryControl_LBX works both in LOCAL DATA MODE using local data tables and Clarion file drivers, as well as in REMOTE DATA MODE via CHT Client Server Connection(s). When displaying MAIN QUEUE DATA a query on this control refreshes from DATA SOURCE. When displaying SHADOW QUEUE DATA this control refreshes from the MAIN QUEUE without interacting at all with the back end DATA SOURCE.

(TIER-3) CLIENT SERVER LBX
** clientserverbrowselistbox **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: CLIENT SERVER LBX
SCOPE: (TIER-3)
CLASSES: HNDFileLoadBrowse
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

This control template populates a list box control, a set of edit buttons and the CHT classes and code necessary to build a Clarion browse that populates from a remote web server, like demo application HNDCLIENTSV.APP.
A child template called ClientServerBrowseBuilder_XCL completes ClientServerBrowseListBox and is also required to be added to your procedure. ClientServerBrowseListBox can import the field names designated on your client server application as web browse fields in order to build a background queue that underlines the list box.
This template is also compatible with QueryParsingFilterControl so that you can create CHT Query Language queries on your client window which are completed by your remote web-server application.
For an example application see HNDCLIENTCL.APP which illustrates and provides Client-Server access to CHT's Subscriber Support Forum.
The demo server servicing HNDCLIENTCL.APP is called HNDCLIENTSV.APP and is also available as a CHT demonstration application in the /hndapps/ directory.
A document called CLIENT SERVER EXAMPLES explains how to add a server VIEW into HNDCLIENTSV.APP and a client browse to consume that VIEW into HNDCLIENTCL.APP.

** handywebclientupdateformproced... **

  
VERSION: 28A.01.00
TYPE: PROCEDURE TEMPLATE
CATEGORY: CLIENT SERVER LBX
SCOPE: (TIER-3)
CLASSES: HNDClient HNDHttp
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

This template builds a Web Client-Server Update Form that can access a CHT server back-end serving up any Clarion compatible data table whether ISAM or SQL.
With this template, building a fast, reliable across-the-web update form accessing a very ordinary computer using a very standard DSL connection is no more difficult than building an regular Clarion desk-top application.
This technology is considerably faster than Clarion's IP driver and it natively incorporates data compression, encryption, back-end views and CHT's query language system.
An example client application is provided (HNDCLIENTCL.APP) which accesses CHT's forum data tables using an example server application called HNDCLIENTSV.APP.

** lbxclientserverbrowse **

  
VERSION: 28A.01.00
TYPE: PROCEDURE TEMPLATE
CATEGORY: CLIENT SERVER LBX
SCOPE: (TIER-3)
CLASSES: HNDHttp HNDClient
PARENT: ListBoxBrowseExtender
  

DESCRIPTION:

©CLARION HANDY TOOLS

This procedure template builds a Client/Server.
ListBoxBrowseExtender (LBX) Local or remote Client/Server browse that works with local data like an ABC browse AND can also access a CHT server back-end serving up any Clarion compatible data table whether ISAM or SQL.
This template assumes that globally your application has applied at least these global templates:
AACHTControlPanel and VBLFileNames.


Once a procedure is created with this template follow these steps:
  • STEP 1: Make sure that AACHTControlPanel and VBLFileNames are attached globally.
  • STEP 2: Attach tables to your new procedure from the Clarion IDE's DATA/TABLES tab.
  • STEP 3: Open the ResizeHandlesControl dialog and insert the "?Display" control into the dropdown.
  • STEP 4: Open the LBX template dialog "ListBox Queue" and select a primary browse table.
  • STEP 5: On the same dialog, add queue fields to the "Queue Fields" dialog in the order you want them displayed on the browse.
  • STEP 6: Visit the WINDOW PROPERTIES button on your procedure and select the "?LBXList" Control
Example applications are: HNDPEOPLE_LBX.APP, HNDLBXDM.APP, HNDLBXSQL.APP, HNDLBXSQLEX.APP

** listboxbrowseextenderclientser... **

  
VERSION: 28A.01.00
TYPE: PROCEDURE TEMPLATE
CATEGORY: CLIENT SERVER LBX
SCOPE: (TIER-3)
CLASSES: HNDHttp HNDClient
PARENT: ListBoxBrowseExtender
  

DESCRIPTION:

©CLARION HANDY TOOLS

This procedure template builds a Client/Server.
ListBoxBrowseExtender (LBX) Local or remote Client/Server browse that works with local data like an ABC browse AND can also access a CHT server back-end serving up any Clarion compatible data table whether ISAM or SQL.
This template assumes that globally your application has applied at least these global templates:
AACHTControlPanel and VBLFileNames.


Once a procedure is created with this template follow these steps:
  1. STEP 1: Make sure that AACHTControlPanel and VBLFileNames are attached globally.
  2. STEP 2: Attach tables to your new procedure from the Clarion IDE's DATA/TABLES tab.
  3. STEP 3: Open the ResizeHandlesControl dialog and insert the "?Display" control into the dropdown.
  4. STEP 4: Open the LBX template dialog "ListBox Queue" and select a primary browse table.
  5. STEP 5: On the same dialog, add queue fields to the "Queue Fields" dialog in the order you want them displayed on the browse.
  6. STEP 6: Visit the WINDOW PROPERTIES button on your procedure and find the "?LBXList" Control

(TIER-3) DATA VIEW SUPPORT
** handyhdqtolocaldata **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: DATA VIEW SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyHDQToLocalData template generates a CHT queue of type HDQ to the Local Data button in your procedure where it can be used to build a non-colorized ListBoxBrowseExtender browse of disk file names.

(TIER-3) FTP CLIENT SUPPORT
** embedinternetftp **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: FTP CLIENT SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDInetFtp
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

This extension creates a single, local instance of the HNDInetFtp Classes.
All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.
Example application: HNDFTPWZ.APP

** embednetftpclasses **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: FTP CLIENT SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDNETFTPClass
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS
This extension creates a single, local instance of HNDNetFTPClass. All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion. Functionality provided is extended Date/Time via a call into a C# DLL built with Visual Studio .NET utilizing COM Interop. The interface layer to Clarion can be found in HNDNETFTP.INC/CLW/TLB.
See HNDNETFTP.INC, HNDNETFTP.CLW and HNDNETFTP.TLB to study the header, code module and method interfaces respectively.
Two demonstration applications called HNDFTPNET.APP and HNDZIPNFTPNET.APP illustrate use of the template and calling HNDNetFTPClass methods.

** handyftpinitializationcontrols **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: FTP CLIENT SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDInetFTP
PARENT: EmbedInternetFTP
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyFTPInitializationControls template creates a set of initialization controls to accompany the "EmbedInternetFTP" template which, in turn, populates the required HNDInetFTP Classes.
Example application: HNDFTPWZ.APP
This template is a child template of CHT EmbedInternetFTP and as such, that template must be present before this one can be added.

** handyftplocalfilescontrols **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: FTP CLIENT SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDInetFTP
PARENT: HandyFTPInitializationControls
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyFTPLocalFilesControls template creates a set of file selector controls that allow you to build a list box of multiple files from multiple directories. Since it is a child of the "EmbedInternetFTP" template, these are files intended for FTP upload.
The parent template populates the necessary HNDInetFTP Classes. NOTE: This template requires you to first populate HandyFTPInitializationControls before it becomes visible in your control-templates list.
Example application: HNDFTPWZ.APP

** handyftplocalfilesdlcontrols **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: FTP CLIENT SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDWindow HNDInetFTP
PARENT: HandyFTPRemoteFilesControls HandyFTPInitializationControls EmbedInternetFTP(HN
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyFTPRemoteFilesDLControls template creates a set of controls that download the remote files selected in a list created by the "HandyFTPRemoteFilesControls" template.
It is indirectly a child of "EmbedInternetFTP" and uses an already-present instance of the HNDInetFTP Class. This class populates one other class called HNDWindow Class which provides a dynamic display of download activity.
Example application: HNDFTPWZ.APP

** handyftplocalfilesulcontrols **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: FTP CLIENT SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDWindow HNDInetFTP
PARENT: HandyFTPLocalFilesControls HandyFTPInitializationControls EmbedInternetFTP(HND
  

DESCRIPTION:

©CLARION HANDY TOOLS

This template creates a set of file selector controls that allow you to build a list box of multiple files from multiple directories.
Since it is a child of the "EmbedInternetFTP" template, these are files intended for FTP upload. The parent template populates the necessary HNDInetFTP Classes.
NOTE: This template requires you to first populate HandyFTPInitializationControls before it becomes visible in your control-templates list.
Example application: HNDFTPWZ.APP

** handyftpremotefilescontrols **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: FTP CLIENT SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDFileLoadBrowse HNDInetFTP
PARENT: HandyFTPInitializationControls EmbedInternetFTP
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyFTPRemoteFilesControls template creates a set of controls that can list the files available at a remote URL. Because it requires the presence of "HandyFTPInitializationControls" it is indirectly a child of "EmbedInternetFTP" and uses an already-present instance of the HNDInetFTP Class. This class populates two other classes. These are:
HNDBrwFilter Class to provide browse query capability, and HNDFileLoadBrowse Class to provide browse record marking.
Example application: HNDFTPWZ.APP

** instantftpdownload **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: FTP CLIENT SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDInetFtp
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

InstantFTPDownload control template drops several controls, a button, a progress bar and two string controls on your window.
It declares an instance of the HNDInetFTP class and writes all the code necessary to download a file from a remote FTP site. The specifics about which file, and which FTP site etc. may be "hard-coded" in this template or handled with variables that you manipulate in code.

** instantftpupload **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: FTP CLIENT SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDInetFtp
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

InstantFTPUpload control template drops several controls, a button, a progress bar and two string controls on your window.
It declares an instance of the HNDInetFTP class and writes all the code necessary to upload a file to a remote FTP site. The specifics about which file, and which FTP site etc. may be "hard-coded" in this template or handled with variables that you manipulate in code.

(TIER-3) HTTP CLIENT SUPPORT
** clientserverupdateformbuttons **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: HTTP CLIENT SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDClientHook
PARENT: HandyWebClientUpdateFormProcedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

ClientServerUpdateFormButtons control template populates a set of update controls to a procedure created with CHT Template HandyWebClientUpdateFormProcedure. This template assists with importation of the a back end view created on your server application using CHT templates HandyJDODataAdapter and ClientServerDataBuilder. It also places the HNDClientHook class and references it to a passed-in instance of HNDHttp and writes all I/O code for fetching a requested record, posting it back and/or deleting it. For an example server application see HNDMTSSV.APP. This template, then completes the functionality of a HandyWebClientUpdateFormProcedure and provides controls that save, save and continue, refresh from server, and cancel the procedure window.
For an example application see HNDMTSCL.APP which illustrates and provides Client-Server access to CHT's Subscriber Support Forum. The demo server servicing HNDMTSCL.APP is called HNDMTSSV.APP and is also available as a CHT demonstration application in the /hndapps/ directory.
This template is a child of CHT Template HandyWebClientUpdateFormProcedure, and as such that template must be applied before this one is avaialable to be added.
This template is also a child of CHT Template HandyWebClientUpdateFormProcedure_LBX which creates a Client Server Web Form Procedure compatible with ListBoxBrowseExtender.

** embedhndclienthook **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: HTTP CLIENT SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDClientHook
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedHNDClientHook extension creates a single, local instance of the HNDClientHook Class, used in CHT Client Server Browses, Forms, Processes, Reports.
All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.

** embedhttpclientfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: HTTP CLIENT SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDClient
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

This extension creates a single, local instance of the HNDClient Classes. All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.

This CHT HNDClient Class is used to turn a Clarion application into a web client of various sorts. This provides your application the capability to communicate via HTTP/HTTPS protocol cross the network, WAN, or WE to exchange data and/or files with a Server (TYPE 1,2,3 or 4) at the other end.
Encryption and compression are built into all transactions and exchanges under developer control.

Further, access permission to the server is strictly controlled by various means under user control. Access can be server-level, or user-specific level as required by the implementation.

** embedhttpfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: HTTP CLIENT SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDHttp
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedHTTPFunctions extension creates a single, local instance of the HNDHttp Classes.
All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.
A number of other templates in the CHT tool kit, with specific, rather than general functionality, also attach HNDHttp to your procedure.Consider using these where applicable.

** embedwinhttpfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: HTTP CLIENT SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDWinHTTP
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedWinHTTPFunctions extension creates a single, local instance of the HNDWinHTTP Classes.
All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.
The HNDWinHTTP class is based in the same Microsoft COM object that extends I.E. for asynchronous calls to the server and is the basis, at least in I.E. for all AJAX-style ServerHTTPRequest communications.
This class enables your Clarion applications to post both synchronous and asynchronous server commands and file requests in a manner similar to AJAX requests from a browser-based script.

** handyhttpfiledelete_ehf **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: HTTP CLIENT SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDHttp
PARENT: EmbedHTTPFunctions
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyHTTPFileDelete_EHF template helps you delete a file located at a remote website using HTTP protocol.
Assumptions are that you know the website URL and the remote file name, and that the site is not secured with a password. The template provides for the selection of various controls from your window interface, each of which can trigger deletion a different file at a unique location on its accepted event.
NOTE: This function requires a receptive CHT Browser Server to perform the actual file delete at the server end. The delete function is heavily restricted by the server and is not available unless you configure your specific server to allow it.
NOTE: The server being accessed must be a correctly configured CHT Server, minimum Type 1.
This template is a child of EmbedHTTPFunctions, and as such cannot be populated to your procedure until its parent has been applied first.

** handyhttpfileexists_ehf **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: HTTP CLIENT SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDHttp
PARENT: EmbedHTTPFunctions
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyHTTPFileExists_EHF template helps you check for the existence of a file at a remote website using HTTP protocol.
Assumptions are that you know the website URL and the remote file name, and that the site is not secured with a password. The template provides for the selection of various controls from your window interface, each of which can trigger testing for a different file at a unique location on its accepted event.
NOTE: The server being accessed must be a correctly configured CHT Server, minimum Type 1.
This template is a child of EmbedHTTPFunctions, and as such cannot be populated to your procedure until its parent has been applied first.

** handyhttpgetfile_ehf **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: HTTP CLIENT SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDHttp
PARENT: EmbedHTTPFunctions
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyHTTPGetFile_EHF template helps you lay the groundwork for file downloading via HTTP in your procedure. It provides the, underlying mechanisms to let you download almost any file from any remote web site.
Assumptions are that you know the website URL and the remote file name, and that the site is not secured with a password. The template provides for the selection of various controls from your window interface, each of which can trigger downloading a different file from a unique location on its accepted event.
NOTE: The server being accessed must be a correctly configured CHT Server, minimum Type 1. This template is a child of EmbedHTTPFunctions, and as such cannot be populated to your procedure until its parent has been applied first.

** handyhttpputfile_ehf **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: HTTP CLIENT SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDHttp
PARENT: EmbedHTTPFunctions
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyHTTPPutFile_EHF template helps you lay the groundwork for file uploading by HTTP in your procedure. It provides the underlying mechanisms to let you upload almost any file to a website with a receptive CHT Browser Server running. The template provides for the selection of various controls from your window interface, each of which can trigger uploading a different file to a unique location on its accepted event.
(NOTE 1) If you select the "Secure" option, the called function OBJ.HttpPutFileSecure() requires a receptive CHT Browser Server to perform the actual file put at the server end. The put function is heavily restricted by the server and is not available unless you configure your specific server to allow it.
(NOTE 2) If you uncheck the "Secure" option, the called function OBJ.HttpBrowserPutFile() will submit a file using the same technique as a browser POST. This file upload should work with most generic web servers.
(NOTE 3) The server being accessed must be a correctly configured CHT Server, minimum Type 1.
This template is a child of EmbedHTTPFunctions, and as such cannot be populated to your procedure until its parent has been applied first.

** handywebclientbrowseprocedure **

  
VERSION: 28A.01.00
TYPE: PROCEDURE TEMPLATE
CATEGORY: HTTP CLIENT SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDHttp HNDClient HNDClientHook
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyWebClientBrowseProcedure template builds an HTTP client browse that can access a CHT server back-end serving up any Clarion compatible data table whether ISAM or SQL.
A snap-in client form template HandyWebClientFormProcedure, a snap-in client report template HandyWebClientReportProcedure and a snap-in client process procedure HandyWebClientProcessProcedure provides a full complement of Web Client procedure types.
With this template and it's accompanying snap-ins, building a fast, reliable across-the-web Client Server application accessing a very ordinary computer using a very standard DSL connection is no more difficult than building an regular Clarion desk-top application.
This technology is considerably faster than Clarion's IP driver and it natively incorporates data compression, encryption, back-end views and CHT's query language system.
An example client application is provided (HNDCLIENTCL.APP) which accesses CHT's forum data tables using an example server application called HNDCLIENTSV.APP.

** handywebclientbrowseproceduree... **

  
VERSION: 28A.01.00
TYPE: PROCEDURE TEMPLATE
CATEGORY: HTTP CLIENT SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDHttp HNDClient HNDClientHook
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyWebClientBrowseProcedureEx template builds an HTTP client browse that can access a CHT server back-end serving up any Clarion compatible data table whether ISAM or SQL. This template differs from HandyWebClientBrowseProcedure, only in the query control being auto-populated. This "EX" version of the template brings with it a newer, "snazzier" query control based in PopFavoriteQueries_CSBL, where the "CSBL" stands for Client Server Browse ListBox.
A snap-in client form template HandyWebClientFormProcedure, a snap-in client report template HandyWebClientReportProcedure and a snap-in client process procedure HandyWebClientProcessProcedure provide a full complement of Web Client procedure types. With this template and it's accompanying snap-ins, building a fast, reliable across-the-web Client/Server application accessing a very ordinary computer using a very standard DSL connection is no more difficult than building an regular Clarion desk-top application.
This technology is considerably faster than Clarion's IP driver and it natively incorporates data compression, encryption, back-end views and CHT's query language system.
An example client application is provided (HNDCLIENTCL.APP) which accesses CHT's forum data tables using an example server application called HNDCLIENTSV.APP.

** handywebclientprocessprocedure **

  
VERSION: 28A.01.00
TYPE: PROCEDURE TEMPLATE
CATEGORY: HTTP CLIENT SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDHttp HNDClient HNDClientHook
PARENT: NONE
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyWebClientProcessProcedure template builds an HTTP client process that can access a CHT server back-end serving up any Clarion compatible data table whether ISAM or SQL.
With this template, a reliable across-the-web Client Server process procedure accessing a very ordinary computer using a very standard DSL connection is no more difficult than building an regular Clarion ABC process. This technology is considerably faster than Clarion's IP driver and it natively incorporates data compression, encryption, back-end views and CHT's query language system.
An example client application is provided (HNDCLIENTCLLEAN1VIEW.APP) which accesses CHT's forum data tables using an example server application called HNDCLIENTSVLEAN1VIEW.APP.
A Web Client starting-point application is provided in demo application HNDCLIENTCLLEAN.APP.
And a Web Client Server starting-point application is provided in demo application HNDCLIENTSVLEAN.APP.

** handywebclientreportprocedure **

  
VERSION: 28A.01.00
TYPE: PROCEDURE TEMPLATE
CATEGORY: HTTP CLIENT SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDHttp HNDClient HNDClientHook
PARENT: NONE
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyWebClientReportProcedure template builds an HTTP client report that can access a CHT server back-end serving up any Clarion compatible data table whether ISAM or SQL.
With this template, a reliable across-the-web Client Server report procedure accessing a very ordinary computer using a very standard DSL connection is no more difficult than building an regular Clarion ABC repot. This technology is considerably faster than Clarion's IP driver and it natively incorporates data compression, encryption, back-end views and CHT's query language system.
An example client application is provided (HNDCLIENTCLLEAN1VIEW.APP) which accesses CHT's forum data tables using an example server application called HNDCLIENTSVLEAN1VIEW.APP.
A Web Client starting-point application is provided in demo application HNDCLIENTCLLEAN.APP.
And a Web Client Server starting-point application is provided in demo application HNDCLIENTSVLEAN.APP.

** handywebclientupdateformproced... **

  
VERSION: 28A.01.00
TYPE: PROCEDURE TEMPLATE
CATEGORY: HTTP CLIENT SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDClient HNDHttp HNDClientHook
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyWebClientUpdateFormProcedure template builds a Web Client-Server Update Form that can access a CHT server back-end serving up any Clarion compatible data table whether ISAM or SQL.
With this template, building a fast, reliable across-the-web update form accessing a very ordinary computer using a very standard DSL connection is no more difficult than building an regular Clarion desk-top application.
This technology is considerably faster than Clarion's IP driver and it natively incorporates data compression, encryption, back-end views and CHT's query language system.
An example client application is provided (HNDMTSCL.APP) which accesses CHT's forum data tables using an example server application called HNDMTSSV.APP.

(TIER-3) HTTP SERVER SUPPORT
** browserserverinitializationcon... **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: HTTP SERVER SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: EmbedBrowserServer
  

DESCRIPTION:

©CLARION HANDY TOOLS

BrowserServerInitializationControls template creates a set of initialization controls to accompany the EmbedBrowserServer template. These controls collect the information necessary to get a CHT Server application (Browser-Server Or Client-Server) up and running. Information collected includes, server IP, default home directory, server PORT and more. On this template too, you will decide the complexity of your server, whether it is a CHT Static Page Server, a CHT Browser Data Server for dynamic data pages or a CHT Client Server for remote thin-client services.
Also determined here is the shape of your server client data base. This aspect applies to data servers only where data security is required. This template reacts to the server type settings enabled on its "Server Configuration" tab so that prompts not relevant to the server type being built are disabled or made invisible.
NOTE: Recently added configurations:
"Skip automatic hardware IP lookup?"

** chtjumpstartfileserverapplicat... **

  
VERSION: 28A.01.00
TYPE: UTILITY TEMPLATE
CATEGORY: HTTP SERVER SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

CHTJumpStartFileServerApplication template creates a complete, ready-to-use or ready-to-test-and-modify CHT File Server like HNDFILSV.APP.
This server may also be used as the starting point for all other types of HTTP-based net servers.
NOTE 1: This is an "App Wizard" which creates a complete self-standing server application. It should be imported to a freshly-created "stub" application containing only a ServerMain(ToDo) procedure.
The base ServerMain(ToDo) procedure is replaced by the wizard's own ServerMain() version.
NOTE 2: The application created is based on CHT demo server HNDFILSV.APP, such that all documentation, videos and companion applications for HNDFILSV.APP pertain also to the application created by this wizard, until it is modified to your own requirements.
NOTE 3: Requires that HNDFILSV.DCT be attached to your "stub" application at creation time.
NOTE 4: A ready-to-use stub application meeting the above conditions called HNDSTUBFILESERVER.APP is provided in the /HNDAPPS/ directory.

** chtjumpstartstaticserverapplic... **

  
VERSION: 28A.01.00
TYPE: UTILITY TEMPLATE
CATEGORY: HTTP SERVER SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

CHTJumpStartStaticServerApplication template creates a complete, ready-to-use or ready-to-test-and-modify CHT Static Page Server like HNDSLFSV.APP.
This server may also be used as the starting point for all other types of HTTP-based net servers.
NOTE 1: This is an "App Wizard" which creates a complete self-standing server application. It should be imported to a freshly-created "stub" application containing only a ServerMain(ToDo) procedure.
The base ServerMain(ToDo) procedure is replaced by the wizard's own ServerMain() version.
NOTE 2: The application created is based on CHT demo server HNDSLFSV.APP, such that all documentation, videos and companion applications for HNDSLFSV.APP pertain also to the application created by this wizard, until it is modified to your own requirements.
NOTE 3: No dictionary is required to be attached to your "stub" application at creation time.
NOTE 4: A ready-to-use stub application meeting the above conditions called HNDSTUBPAGESERVER.APP is provided in the /HNDAPPS/ directory.

** clientserverbrowsebuilder_xcl **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: HTTP SERVER SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDHttp HNDClient
PARENT: ClientServerBrowseListBox
  

DESCRIPTION:

©CLARION HANDY TOOLS

ClientServerBrowseBuilder_XCL template extension works as a child of ClientServerBrowseListBox to produce a Client Server Data Browse based on data requested from a Remote CHT Client Server Application which contains view procedures built with the CHT Template ClientServerDataBuilder.
This special _XCL version of ClientServerBrowseBuilder assumes an external instance of the CHT HNDClient Class is passed into this procedure from another window which has already instantiated and logged-in the client application to the server being accessed.

This procedure instantiates HNDClientHook, which receives and references the passed in HNDClient instance and extends it with several methods containing code with local access to the browse queue, the list box and to a special queue called MacroQ which, optionally, may receive query macro definitions created in the server configuration table.
Creating a "Client Server Web Browse" is a snap using this template in conjunction with ClientServerBrowseListBox, by simply matching one-to-one the query-friendly field names being passed up from the host server with the queue fields allocated to the list box. It is not necessary to populate the client browse (and its queue) with all browse-directed fields passed up from the server.
At the same time the client browse query control (built with QueryParsingFilterControl) is still able to query all fields enabled for querying in the server view to which this browse connects, regardless of the number of fields displayed in the browse.
"CODE-TABS" have been added to this template to enable developers to insert code into the ViewToFileBuffer() method. "CODE-TABS" left blank (no code inserted) are ignored and have no impact on the procedure.

** clientserverdatabuilder **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: HTTP SERVER SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: HandyJDOAdapter
  

DESCRIPTION:

©CLARION HANDY TOOLS

ClientServerDataBuilder template extension works with the HandyJDODataAdapter template to produce client-oriented data streams and packages to be returned to a remote web client via a passed-in instance of the CHT Browser Server classes.
It produces client-oriented browse, update, process and report data to service data-interactive, web-client applications using a Clarion-style browse/form data paradigm for lightning-fast, view-oriented, web data clients built with Clarion and CHT templates.

** clientserverquerybrancher_bic **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: HTTP SERVER SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: BrowserServerInitializationControls
  

DESCRIPTION:

©CLARION HANDY TOOLS

Each data packaging function in your client data server application requires you to create a separate, unique view name with this template, to which client queries, tagged with that view name are routed via Server.TakeQueryBrancher() by code generated by this template. A variety of error messages configured on the EmbedBrowserServer Template is also laid down at the completion of the Server.TakeQueryBrancher() method in the event that your data packaging function fails for any reason.
This template is a child of BrowserServerInitializationControls and can only be applied to your procedure if that parent template is already present.

** clientserverwebprocessdatabuil... **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: HTTP SERVER SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDHttp HNDClient HNDClientHook
PARENT: HandyWebClientProcessProcedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

ClientServerWebProcessDataBuilder template plugs into two other CHT templates called HandyWebClientProcessProcedure and HandyWebClientReportProcedure to incorporate a web client connector interface into these two separate procedure type.
With this template, a reliable across-the-web Client Server report process or procedure accessing a very ordinary computer using a very standard DSL connection is no more difficult than building an regular Clarion ABC report or process. This technology is considerably faster than Clarion's IP driver and it natively incorporates data compression, encryption, back-end views and CHT's query language system.
An example client application is provided (HNDCLIENTCLLEAN1VIEW.APP) which accesses CHT's forum data tables using an example server application called HNDCLIENTSVLEAN1VIEW.APP.
A Web Client starting-point application is provided in demo application HNDCLIENTCL.APP.
And a Web Client Server starting-point application is provided in demo application HNDCLIENTSV.APP.

** clientserverwebreportdatestamp **

  
VERSION: 28A.01.00
TYPE: PROCEDURE TEMPLATE
CATEGORY: HTTP SERVER SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDHttp HNDClient HNDClientHook
PARENT: HandyWebClientReportProcedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

ClientServerWebReportDateStamp template plugs into another CHT template called HandyWebClientReportProcedure to automate the addition of a report date stamp.

** clientserverwebreportpagenumbe... **

  
VERSION: 28A.01.00
TYPE: PROCEDURE TEMPLATE
CATEGORY: HTTP SERVER SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDHttp HNDClient HNDClientHook
PARENT: HandyWebClientReportProcedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

ClientServerWebReportPageNumber template plugs into another CHT template called HandyWebClientReportProcedure to automate the addition of a report page number.

** clientserverwebreporttimestamp **

  
VERSION: 28A.01.00
TYPE: PROCEDURE TEMPLATE
CATEGORY: HTTP SERVER SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDHttp HNDClient HNDClientHook
PARENT: HandyWebClientReportProcedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

ClientServerWebReportTimeStamp template plugs into another CHT template called HandyWebClientReportProcedure to automate the addition of a report time stamp.

** embedbrowserserver **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: HTTP SERVER SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDHtml HNDBrowserServer HNDSubscriptionServer ViewManager
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedBrowserServer template creates a single, local instance of a class called HNDSubscriptionServer.
This class derives from HNDBrowserServer, which in turn derives from HNDHtml. The resulting combination of derivations gives your CHT Browser Server very powerful TCP/IP connectivity via network or internet, and the capablility to asynchronously connect and deliver packages in various forms to client applications such as browsers and even to desk-top client applications.
This template is also the parent template to numerous other templates like BrowserServerInitializationControls which will help you build a server interface into which you can plug extension templates that cumulatively add functionality to the server application.
The resulting server applicaton handles security, tracks login times, dates and frequency, and enables remote access to your data without compromising either data integrity or security.

** embedbrowserserverfileschemati... **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: HTTP SERVER SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: EmbedBrowserServer
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedBrowserServerFileSchematic template adds ABC File Schematic enhancement to CHT Browser Server Applications built upon the EmbedBrowserServer Template.
While file opening and closing is handled by the parent ABC Window template, it is possible to optimize file access somewhat using this template by controlling file open mode and by inserting file streaming.
This template is a child of CHT template EmbedBrowserServer and can only be applied it that parent template is already present.

** embedhnddataadapterfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: HTTP SERVER SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDDataAdapter
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedHNDDataAdapterFunctions extension creates a single, local instance of the HNDDataAdapter Classes. All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.

** globalincludehndclientfunction... **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: HTTP SERVER SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDClient HNDClientHook
PARENT: AACHTControlPanel
  

DESCRIPTION:

©CLARION HANDY TOOLS

GlobalIncludeHNDClientFunctions extension template globally instantiates a single instance of the CHT HNDClient class.
You may change the default instance name if you wish.
This template is a child of AACHTControlPanel and can only be populated to your application once AACHTControlPanel has been added.

** handyjdodataadapter **

  
VERSION: 28A.01.00
TYPE: PROCEDURE TEMPLATE
CATEGORY: HTTP SERVER SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDJDOAdapter ViewManager HNDBrwFilter TransactionManager
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyJDODataAdapter template is the base template upon which all Browser Server and Client Server data packaging procedures are built. The resulting procedure's embed structure is based on a skeleton class called HNDJDOAdapter.
1) To build a BROWSER-directed data server: Combine this template with an extension template called "BrowserServerJDOBuilder" which provides an entirely self standing, embeddable infrastructure that reads files and tables via queryable views that generate Javascript Data Packages which when transmitted to any modern browser, may be used to render interactive data forms, browses and reports. See the demonstration forum server application HNDMTSNG.APP for example procedures based on this HandyJDODataAdapter and BrowserServerJDOBuilder templates in combination.
2) To build a CLARION-CLIENT-directed data server: Combine this template with an extension template called "ClientServerDataBuilder", in order to provide a similar self standing, embeddable infrastructure that reads files and tables via queryable views but in this instance, generate structured data streams that when transmitted to remote data clients built with Clarion and CHT templates may be used to build client-side browses, forms, processes and reports. See the demonstration forum server application HNDMTSSV.APP for example procedures based on this HandyJDODataAdapter and ClientServerDataBuilder templates in combination.
3)Since this template is the root view-building template used to create back end views in both Client Server AND Browser Server applications, it is the first template populated when a back end view must be created in any CHT Web server of type 1 (Browser Server) and type 3 (Client Server).
There are numerous other server example applications of both types and there is a starting-point version of each server type which developers should use to start their own server projects rather than building a server app from scratch.
See HNDCLIENTSV.APP -- starting-point server for CHT Client Server projects.

** popfavoritequeries_csbl **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: HTTP SERVER SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDBrwFilter HNDClnt
PARENT: ClientServerBrowseListBox
  

DESCRIPTION:

©CLARION HANDY TOOLS

PopFavoriteQueries_CSBL template creates a set of controls that pop up pre-built queries and query macros saved to a file defined in your dictionary and inserts them into a query entry control also provided by the template.
Dropping this template has the combined effect of dropping QueryParsingFilterControl with some features turned off plus PopFavoriteQueries_QPFC and it does so in a single step rather than having to drop the other two templates one after the other.
See the predefined tables "PreQuery" and "PreMacro" in HNDACCES.DCT, HNDO.DCT and HNDCLIENTSV.DCT. These tables should be imported into your app's dictionary as a model for pre-defined queries or macros data tables. The table names and type (ISAM or SQL) doesn't really matter to this template, nor do the file prefixes.
However, field names and data size definitions are required to be as defined in the PreQuery and PreMacro table designs. CHT has provided an importable JumpStart procedure for browsing, editing and inserting pre-built queries. See the CHT Jumpstart Procedures interface. Queries entered on the query entry control can, of course, be saved into your pre-defined queries table on the fly by users. Deletes of pre-defined queries is also allowed -- no Macro saving or deleting, though. Adding/deleting controls are provided for queries by the template but these may be hidden if you want to disallow all operations except query and macro selection and execution.

** processusercustomrequest **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: HTTP SERVER SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDSubscriptionServer HNDBrowserServer
PARENT: EmbedBrowserServer
  

DESCRIPTION:

©CLARION HANDY TOOLS

ProcessUserCustomRequest extension template helps you write code to intercept and process a UCR$ command in your CHT server application, sent to it by a remote client application.
A UCR$, or User Custom Request, is any non-standard request dreamed up by the developer that can be performed by a server application on behalf of a requesting client. UCR$ requests, once verified to be from a legitimate, logged-in client, are passed into a server method called "ProcessUserCustomRequest" where the developer can embed code to intercept the request and act on it.
This template assists with the "interception" and "acting-on" aspect of that process. UCR$ requests may be accompanied by one or more parameters, so that they emulate remote procedure calls.
They can also return single or multiple values, web pages, links, raw data, almost anything the developer requires. User Custom Requests can be run on a thread so that they operate off-line and return immediately, requiring a second call to pick up any data produced, or in-line so that any information returned is passed back immediately on completion of the request.
This template is a child of CHT template EmbedBrowserServer and can only be applied to your procedure if that parent template has already been applied.

** serverfilehandlingoverrides **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: HTTP SERVER SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: EmbedBrowserServer
  

DESCRIPTION:

©CLARION HANDY TOOLS

By default, all CHT servers deny all file upload/download/delete requests from browsers and clients alike. This template helps you configure the behavior of placeholder server methods to conditionally or unconditionally allow or disallow upload, download and deletion of files using file extension, file size and user information as criteria.
The following server functions may be enabled and customized directly from this template's interface: Server.GetSendServerLogApproval(), Server.GetReadDirApproval(), Server.GetPutFileApproval() Server.GetGetFileApproval(), Server.GetFileExistsApproval(), Server.GetBrowserPutFileApproval() Server.GetDeleteFileApproval(), Server.DumpServerDirectories(), and Server.DumpServerFiles().
This template is a child of EmbedBrowserServer and can only be populated onto your application if that template is already present.

** serverfilenameandpathdefaults **

  
VERSION: 28A.01.00
TYPE: CODE TEMPLATE
CATEGORY: HTTP SERVER SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: VblFileNames
  

DESCRIPTION:

©CLARION HANDY TOOLS

When a CHT Browser Data Server or Client Data Server with a standard, server variables configuration file attached starts for the first time, this template can initialize the registry locations CommonPath, BaseDirectory and FILE:NGConfig so that the server can start and show its initialization screen. CommonPath points to the server executable's directory followed by the app name. BaseDirectory points to CommonPath plus \run\.
FILE:NGConfig is named as indicated in the server's dictionary.

This template assumes that your dictionary is configured for variable file names to the extent that at least the server configuration file is named there, in the manner illustrated by HNDMTSNG.DCT.
This template further assumes that your application has already populated global CHT templates named AACHTControlPanel, VblFileNames and INIFile.
Example server application HNDMTSSV.APP uses this template.

(TIER-3) MEMORY/STRING SUPPORT
** embedbufferobject **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: MEMORY/STRING SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDBuffer
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedBufferObject extension creates a single, local instance of the HNDBuffer Class. HNDBuffer provides a means of creating, removing, and even re-sizing large storage memory spaces within your procedures. This eliminates the need to create a pre-sized CSTRING which must accept binary data of unknown length. Inevitably, in situations where the input data size is unknown ahead of time, the CSTRING created is too big and wastes memory, or too small and either fails or GPFs due to memory overwrite. Since this is an object that once out of scope self-destucts, there is also less risk of leaving unused, but still-allocated memory space attached to your application, thus preventing "memory leak".
HNDBuffer also includes a "BufferHash" function which can detect differences between the data held in one buffer and another. A Hash value is kept of any given buffer as it has data inserted or removed from it. At any time, the hash value of one buffer can be compared with that of another buffer to determine if they are the same or different.
CHT's server classes use HNDBuffer extensively to create memory storage for large, but infinitely size-variable, data coming and going over the network or the internet. All HNDBuffer methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.

** embedhndstringfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: MEMORY/STRING SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDString
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedHNDStringFunctions extension creates a single, local instance of the HNDString Class. All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.

(TIER-3) PROCESS SUPPORT LBX
** lbxbrowseprocessbutton **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: PROCESS SUPPORT LBX
SCOPE: (TIER-3)
CLASSES: None
PARENT: ListBoxBrowseExtender
  

DESCRIPTION:

©CLARION HANDY TOOLS

This template creates a button that starts an ABC process after copying the marked records in your LBX Browse to a local queue identical to the browse queue and referencing it to the LBX Shadow Queue.

(TIER-3) PROJECT BUILDER SUPPORT
** excludemswsocklib **

  
VERSION: 28A.01.00
TYPE: UTILITY TEMPLATE
CATEGORY: PROJECT BUILDER SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

If another ABC or 3rd party template includes a DLL which has already incorporated MSWSOCK.LIB, check the switch below and CHT (CLARION HANDY TOOLS) will avoid including it again. NOTE: After changing this setting please make sure to force-regenerate your application.

** excludewininetlib **

  
VERSION: 28A.01.00
TYPE: UTILITY TEMPLATE
CATEGORY: PROJECT BUILDER SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

If another ABC or 3rd party template includes a DLL which has already incorporated WININET.LIB, check the switch below and CHT (CLARION HANDY TOOLS) will avoid including it again. NOTE: After changing this setting please make sure to force-regenerate your application.

** exportproject **

  
VERSION: 28A.01.00
TYPE: UTILITY TEMPLATE
CATEGORY: PROJECT BUILDER SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

The CHT Project Builder uses this template to export the [PROJECT] components from the TXA. It is run by CHT Project Builder during the Export TXA functionality added in July 2007.

The output from this is functionally equivalent to executing the "Export Project File" menu from the Clarion 6.x File Menu.

** hndchecktplreg **

  
VERSION: 28A.01.00
TYPE: UTILITY TEMPLATE
CATEGORY: PROJECT BUILDER SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

The CHT Project Builder uses this template to trigger the Clarion IDE to conditionally re-read all ABC Compliant Classes from disk in the event any have been changed.

** hndcmpappclassestohtmlfile **

  
VERSION: 28A.01.00
TYPE: UTILITY TEMPLATE
CATEGORY: PROJECT BUILDER SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

HNDCmpAppClassesToHtmlFile template generates a list of ABC compliant classes used in your application, a structured HTML list we call an "Application Classes Schematic". The list is organized by procedure and includes all classes in use by your procedures, whether of origin CHT or not.
CHT provides such a list for all of its demonstration applications, recallable from the "About" menu. Subscribers can generate a list for themselves for any application from the AACHTControlPanel Template's "Classes By Procedure" dialog.

** hndcmpapptemplatestohtmlboth **

  
VERSION: 28A.01.00
TYPE: UTILITY TEMPLATE
CATEGORY: PROJECT BUILDER SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

HNDCmpAppTemplatesToHtmlBoth template is used by CHT Project Builder (CHT PROJECT BUILDER) to generate HTML app discovery information. This template is called from CHT Project Builder as an entry point to two other utility templates.

These are: HNDCmpAppTemplatesToHTMLFile which generates application template discovery information and HNDCmpAppClassesToHtmlFile which generates application classes discovery information.

** hndcmpapptemplatestohtmlfile **

  
VERSION: 28A.01.00
TYPE: UTILITY TEMPLATE
CATEGORY: PROJECT BUILDER SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

HNDCmpAppTemplatesToHtmlFile template is used by CHT Project Builder (CHT PROJECT BUILDER) to generate a list of templates used in your application, a structured HTML list we call an "Application Templates Schematic".

The list is organized by procedure and includes all templates populated on your procedures, whether CHT origin or not. CHT provides such a list for all of its demonstration applications, recallable from the "About" menu.
In the October 2008 update, this template now displays also the application version and the full prototype of each procedure in the application. Procedure docs - if populated as HandyProcedureDocs template - are now also generated into the area above the templates list after the procedure prototype.

** hndcmpimportaactlpanel **

  
VERSION: 28A.01.00
TYPE: UTILITY TEMPLATE
CATEGORY: PROJECT BUILDER SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

HNDCmpImportAACtlPanel template is used by the CHT Project Builder and other CHT templates to attach the AACHTControlPanel template to your application where required by CHT templates to provide application configuration services.

** hndcmpsetexpireoff **

  
VERSION: 28A.01.00
TYPE: UTILITY TEMPLATE
CATEGORY: PROJECT BUILDER SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

HNDCmpSetExpireOff template is used by the CHT Project Builder and AACHTControlPanel template to toggle the application's expiration pragma flag OFF. With this flag set off no expiration code is generated into the base area of your application, to stop it from running beyond an appointed date.
The CHT Project Builder allows the developer to change this setting with a single mouse click on its interface without requiring them to open the application and visit its Application Properties dialog.

** hndcmpsetexpireon **

  
VERSION: 28A.01.00
TYPE: UTILITY TEMPLATE
CATEGORY: PROJECT BUILDER SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

HNDCmpSetExpireOn template is used by the CHT Project Builder and AACHTControlPanel template to toggle the application's expiration pragma flag ON. With this flag set and an expiration date provided, the AACHTControlPanel template generates expiration code into the base area of your application, stopping it from running beyond an appointed date.
The CHT Project Builder allows the developer to change this setting with a single mouse click on its interface without requiring them to open the application and visit its Application Properties dialog.

** hndcmpsetmodeldll **

  
VERSION: 28A.01.00
TYPE: UTILITY TEMPLATE
CATEGORY: PROJECT BUILDER SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

HNDCmpSetModelDLL template is used by CHT Project Builder to set application compile mode to DLL from LIB.
This template is called from CHT Project Builder as an entry point to two other utility templates.

** hndcmpsetmodellib **

  
VERSION: 28A.01.00
TYPE: UTILITY TEMPLATE
CATEGORY: PROJECT BUILDER SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

HNDCmpSetModelLib template is used by CHT Project Builder to set application compile model to LIB from DLL
This template is called from CHT Project Builder as an entry point to two other utility templates.

** hndremoveapplicationpath **

  
VERSION: 28A.01.00
TYPE: UTILITY TEMPLATE
CATEGORY: PROJECT BUILDER SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

The CHT Project Builder uses this template to remove the path from your application's Project -> Properties -> Target File setting. CHT Project Builder expects the EXE or DLL created to appear in a predictable location (the application directory). Without this assumption it is unable to detect the completion of the application compilation phase and move onto the next application in a batch compile.

** refreshabc **

  
VERSION: 28A.01.00
TYPE: UTILITY TEMPLATE
CATEGORY: PROJECT BUILDER SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

The CHT Project Builder uses this template to trigger the Clarion IDE to unconditionally re-read all ABC Compliant Classes from disk in the event any have been changed.

** settranslatemodecustom **

  
VERSION: 28A.01.00
TYPE: UTILITY TEMPLATE
CATEGORY: PROJECT BUILDER SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

SetTranslateModeCustom template is used by CHT Project Builder (CHT PROJECT BUILDER) to set the app for HNDCUSTOM.TRN

** settranslatemodedefault **

  
VERSION: 28A.01.00
TYPE: UTILITY TEMPLATE
CATEGORY: PROJECT BUILDER SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

SetTranslateModeDefault template is used by CHT Project Builder to set the app for HNDFBACK.TRN

(TIER-3) SMS SUPPORT
** embedsmsfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: SMS SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDSMS
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedSMSFunctions extension creates a single, local instance of the HNDSmtp Classes. All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.

(TIER-3) SNAPIN SUPPORT
** applicationsnapins **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: SNAPIN SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: AACHTControlPanel
  

DESCRIPTION:

©CLARION HANDY TOOLS

This global extension template is an incorporation point in your application for a number of stand-alone, mostly-single-function executables which have, by and large, been a growing and ever-evolving part of CHT's HNDAPPS suite of demo and utility applications for many years.
CHT provides Snap-Ins for HTTP file movement, File compression and decompression, EMAIL protocols of various sorts, File Encryption, HTML-to-PDF file conversion, and system disk identification.
The individual "Snap-In" items listed and described below are the components which are fully available to you with any given CHT Build or Build Update. This list continues to evolve over time as this template's interface continues to evolve.
• Snap-Ins Presently Available Via This Template: (8)
CHTSNAPEDIT.EXE, CHTSNAPGET.EXE, CHTSNAPMAPI.EXE, CHTSNAPSMTP.EXE
CHTSNAPZIP.EXE, CHTSNAP2PDF.EXE, CHTSNAPCRYPT.EXE and CHTSNAPDISK.EXE
CHT "Snap-Ins" are written in C#.
• CHT Batch-Bots Presently Available Via This Template: (10)
HNDMAKEHZO.EXE, HNDMAILMAPI.EXE, HNDMAILCDO.EXE, HNDMAILSMTP.EXE
HNDSEARCH.EXE, HNDSLFCMD.EXE, HNDMAILNET.EXE, HNDZIPNET.EXE,
HNDENCRYPT.EXE,
HNDFTPNET.EXE and HNDXML2HTMGEN.EXE
CHT "Batch-Bots" are written in Clarion. The source code for these is available in your HNDAPPS directory as a standard part of your CHT toolkit.
CHT "Batch-Bots" and CHT "Snap-Ins" are primarily command-line utilities meant to perform a specific task independent of a standard windows-form interface.
Some examples are: zipping a file (CHTSNAPZIP.EXE), or sending a file to a web-server (HNDSLFCMD.EXE) or fetching a file from a web-server (CHTSNAPGET.EXE), and so on.
These executables, while fully stand-alone, so they can be used from the DOS command-line, are also viable application components used as you would a DLL, so they can be run also from inside a Clarion or C# application. Each runs as an independent process spawned from inside your application. Specific instructions as to how to perform any individual task are passed to these executables, on the command-line.
For example: CHTSNAPZIP zz MYAPP.ZIP c:\mydir\myapp.exe
This set of commandline instructions, creates a zip called "MYAPP.ZIP" from an EXE called MYAPP.EXE.
• CHT "Utility" Applications Now Available Via This Template: (4)
CHT's Application Snap-Ins template presently provides in-app launch capability for these "Utility Applications":
HNDPRINTHTML.EXE, HNDPREVIEWER.EXE, HNDSETUP.EXE, HNDSQLTRACE.EXE
CHT "Utility Executables" are written in Clarion. The source code for these is also available, like "Batch-Bots", in your HNDAPPS directory as a standard part of the CHT Toolkit. CHT "Utility Executables" differ from "Snap-Ins" and "Batch-Bots" in that they have full-blown Windows-Form interfaces from which configuration and task instructions are requested from the application. They generally don't need to be launched though some can be with command-line instructions.

** botcdostartbutton **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: SNAPIN SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: ApplicationSnapIns , Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

This control template places three buttons on your window that may be used to start the CHT HNDMAILCDO.EXE Batch-Bot, display its configuration and its help docs. This template is a child of CHT template ApplicationSnapIns(HndTools) which must first be available on the application before this extended control becomes visible for selection and placement on your procedure window. Global template ApplicationSnapins(HndTools), once added to your application, must also have its "Enable?" and "Copy" switches checked, in the HNDMAILCDO.EXE dialog.
This button control template specifically calls the HNDSNAPCALL.RunCHTBotCDO() function to send an email via HNDMAILCDO.EXE.

Example application: HNDTESTCHTBOTCLACDO.APP.

** botmapistartbutton **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: SNAPIN SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: ApplicationSnapIns , Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

This control template places two buttons on your window that may be used to start and document the HNDMAILMAPI(.EXE/.APP) command line email send utility.
BotMAPIStartButton template is a child of CHT template ApplicationSnapIns(HndTools), which must first be available on the application before this extended control becomes visible for selection and placement on your procedure window. Global template ApplicationSnapins(HndTools), once added to your application must also have its "Enable?" and "Copy" switches checked, in the HNDMAILMAPI.EXE dialog.
Buttons placed on your procedure window are: "?Button:StartBotMapi" and "?Button:DocumentBotMapi".
Example application: HNDTESTCHTBOTCLAMAPI.APP.

** botnetsmtpstartbutton **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: SNAPIN SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: ApplicationSnapIns , Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

This control template places three buttons on your window that may be used to start, configure and ducument the HNDMAILNET(.EXE/.APP) command line email send utility.
This template is a child of CHT template ApplicationSnapIns(HndTools), which must first be available on the application before this extended control becomes visible for selection and placement on your procedure window. Global template ApplicationSnapins(HndTools), once added to your application must also have its "Enable?" and "Copy" switches checked, in the HNDMAILNET.EXE dialog.
Buttons placed on your procedure window are: "?Button:StartNetBotSMTP", "?Button:ConfigNetBotSmtp" and "?Button:DocumentNetBotSmtp".
Example application: HNDTESTCHTBOTNETSMTP.APP.

** botsearchstartbutton **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: SNAPIN SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: ApplicationSnapIns , Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

This control template places two buttons on your window that start, and document the HNDSEARCH(.EXE/.APP) Command Line Text Search Utility. This template is a child of CHT template ApplicationSnapIns(HndTools), which must first be available on the application before this extended control becomes visible for selection and placement on your procedure window. Buttons provided are "?Button:StartBotSearch", and "?Button:DocumentBotSearch".
Global template ApplicationSnapins(HndTools), once added to your application must also have its "Enable?" and "Copy" switches checked, in the HNDSEARCH.EXE dialog.
Example application: HNDTESTCHTBOTCLASMTP.APP.

** botsmtpstartbutton **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: SNAPIN SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: ApplicationSnapIns , Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

This control template places three buttons on your window that start, confgure and document the HNDMAILSMTP(.EXE/.APP) command line email send utility. This template is a child of CHT template ApplicationSnapIns(HndTools), which must first be available on the application before this extended control becomes visible for selection and placement on your procedure window. Buttons provided are "Button:StartBotSmtp", "Button:ConfigBotSmtp" and "Button:DocumentBotSmtp".
Global template ApplicationSnapins(HndTools), once added to your application must also have its "Enable?" and "Copy" switches checked, in the HNDMAILSMTP.EXE dialog.
Example application: HNDTESTCHTBOTCLASMTP.APP.

** botzipstartbutton **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: SNAPIN SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: ApplicationSnapIns , Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

This control template places three buttons on your window that may be used to command the HNDZIPNET.EXE utility. This template is a child of CHT template ApplicationSnapIns(HndTools) which must first be available on the application before this extended control becomes visible for selection and placement on your procedure window.
Global template ApplicationSnapins(HndTools), once added to your application must also have its "Enable?" and "Copy" switches checked, in the CHT SNAPZIP dialog. This button control template specifically calls the HNDSNAPCALL.RunCHTBotZipNet() function to zip a source directory but not include the subdirectories of that source directory.
The RunCHTBotZipNet() function calls HNDZIPNET.EXE.EXE with the correct command line parameters to make this happen.
Example application: HNDTESTCHTBOTHNDZIPNET.APP.

** embedsnapcall **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: SNAPIN SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDSnapCall
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedSnapCall template may be used to attach to your application, at the procedure level, a CHT Code module containing a single class called HNDSnapCall. This extension creates a single, local instance of the HNDSnapCall Class which is used to call a variety of "CHT SNAP-IN" executable tools in a manner that resembles standard DLL calls, using parameter passing on the command line.
At time of writing, this class interfaces to the following items:
CHTSNAPSEND.EXE, CHTSNAPEDIT.EXE, CHTSNAPSMTP.EXE, CHTSNAPMAPI.EXE, CHTSNAPGET.EXE.

** globalincludehndsnapcallfuncti... **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: SNAPIN SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDSnapCall
PARENT: AACHTControlPanel
  

DESCRIPTION:

©CLARION HANDY TOOLS

This extension template globally instantiates a single instance of the CHT HNDSnapCall class. You may change the default instance name if you wish.
This template is a child of AACHTControlPanel and can only be populated to your application once AACHTControlPanel has been added.
NOTE: This template is auto-populated (once) to the global area of your application, when any one of our "CHT Snap" functionalities is enabled on the global template called Application Snap-Ins.
Since many snap-call functions include RUN() calls with the console output redirected for capture, into an application variable, this template suggests optionally that the application copy hndcapcon.dll to the application compile output directory.

** handywindowsstopstartsnapsendb... **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: SNAPIN SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: ProcedureSnapIns , Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

This control template places a single button on your window that may be used to start or stop the CHT SnapSend Utility. This template is a child of CHT template ProcedureSnapIns(HndTools) which must first be available on the procedure before this extended control becomes visible for selection and placement on your procedure window. The ProcedureSnapIns(HndTools) template is itself an auto-populated template that appears automaticallly on any application window procedure when a global template called ApplicationSnapins(HndTools) is added to your application and is configured with its "Enable?" switch checked.

** proceduresnapins **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: SNAPIN SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: ApplicationSnapIns
  

DESCRIPTION:


This extension template is auto-populated on all application window procedures by a global template called "ApplicationSnapIns(HndTools)". The "Enable?" switch provided on the global "Snap-In" component interface in ApplicationSnapIns, determines whether or not that specific component has any code impact on the window receiving this "ProcedureSnapIn" extension template. Separate, "About" information below will describe, as the number of "Snap-Ins" grows, the behavior of this template in regard to that specific Snap-In component.
About CHT SnapSend:
On a procedure-by-procedure basis, this template allows the developer to optionally expose the state of procedure-local and global variables while the procedure is running. These variables are added into a text file that is sent via email along with the procedure-window snapshot taken by CHT SnapSend. This template is also the parent of a button template called "HandyWindowsStopStartSnapSendButton(HndTools)". That means the button template does not appear in the IDE's control templates list until ApplicationSnapins' "Enable?" switch is checked.

** runchtsnapedit **

  
VERSION: 28A.01.00
TYPE: CODE TEMPLATE
CATEGORY: SNAPIN SUPPORT
SCOPE: (TIER-3)
CLASSES: HNDSNAPCALL.CLW
PARENT: ApplicationSnapIns
  

DESCRIPTION:

©CLARION HANDY TOOLS

This code template helps you to write code that starts CHTSNAPEDIT.EXE from a Clarion menu or button control ACCEPT event. This code template is dependent on the initial placement of the global CHT procedure-local template EmbedSnapCall as well as the CHT global templates ApplicationSnapIns and its parent AACHTControlPanel. In fact, this code template will not appear in your list of CHT code templates unless AACHTControlPanel, ApplicationSnapIns and EmbedSnapCall are present beforehand.

** snapeditstartbutton **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: SNAPIN SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: ApplicationSnapIns , Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

This control template places a single button on your window that may be used to start the CHT SnapEdit Utility. This template is a child of CHT template ApplicationSnapIns(HndTools) which must first be available on the application before this extended control becomes visible for selection and placement on your procedure window. Global template ApplicationSnapins(HndTools) once added to your application must also have its "Enable?" and "Copy" switches checked, in the CHT SNAPEDIT dialog.

** snapgetstartbutton **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: SNAPIN SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: ApplicationSnapIns , Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

This control template places three buttons on your window that may be used to start the CHT SnapGet Utility. This template is a child of CHT template ApplicationSnapIns(HndTools) which must first be available on the application before this extended control becomes visible for selection and placement on your procedure window. Global template ApplicationSnapins(HndTools), once added to your application, must also have its "Enable?" and "Copy" switches checked, in the CHT SNAPGET dialog. This button control template specifically calls the HNDSNAPCALL.RunCHTSnapGet() function fetch a remote file from either a CHT-Style server or a standard IIS (WIndows) or Linux Server.
Example application HNDTESTCHTSNAPGET.APP.

** snaphndslfcmdstartbutton **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: SNAPIN SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: ApplicationSnapIns , Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

This control template places a single button on your window that may be used to start the BATCH BOT Utility, HNDSLFCMD.EXE. This template is a child of CHT template ApplicationSnapIns(HndTools) which must first be available on the application before this extended control becomes visible for selection and placement on your procedure window. Global template ApplicationSnapins(HndTools) once added to your application must also have its "Enable?" and "Copy" switches checked, in the BOT HTTP Tool Snap-In dialog. This button control template specifically calls the HNDSNAPCALL.RunHndSlfSvFetch() or HNDSNAPCALL.RunHndSlfSvSend(), function in order download or upload as directed by your template settings. These functions call HNDSLFCMD.EXE with the correct command line parameters to make this happen. Example application: HNDSLFCMDSNAPTEST.APP.

** snapmapistartbutton **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: SNAPIN SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: ApplicationSnapIns , Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

This control template places two buttons on your window that may be used to start the CHTSNAPMAPI.EXE command line email send utility. This template is a child of CHT template ApplicationSnapIns(HndTools) which must first be available on the application before this extended control becomes visible for selection and placement on your procedure window. Global template ApplicationSnapins(HndTools), once added to your application must also have its "Enable?" and "Copy" switches checked, in the CHTSNAPMAPI.EXE dialog. Example application HNDTESTCHTSNAPMAPI.APP.

** snapsmtpstartbutton **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: SNAPIN SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: ApplicationSnapIns , Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

This control template places three buttons on your window that may be used to start the CHTSNAPSMTP.EXE command line email send utility. This template is a child of CHT template ApplicationSnapIns(HndTools), which must first be available on the application before this extended control becomes visible for selection and placement on your procedure window. Global template ApplicationSnapins(HndTools), once added to your application must also have its "Enable?" and "Copy" switches checked, in the CHT SNAPSMTP dialog. Example application: HNDTESTCHTSNAPSMTP.APP.

** snapsendstartbutton **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: SNAPIN SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: ProcedureSnapIns , Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

This control template places a single button on your window that may be used to start or stop the CHT SnapSend Utility. This template is a child of CHT template ProcedureSnapIns(HndTools) which must first be available on the procedure before this extended control becomes visible for selection and placement on your procedure window. The ProcedureSnapIns(HndTools) template is itself an auto-populated template that appears automaticallly on any application window procedure when a global template called ApplicationSnapins(HndTools) is added to your application and is configured with its "Enable?" switch checked. This template was added for name compatiblity with other SnapxxxStartButton templates (e.g. SnapGetStartButton). It is identical to the template created earlier (which continues to exist) called HNDWINDOWSTOPSTARTSNAPSENDBUTTON.

** snapunzipstartbutton **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: SNAPIN SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: ApplicationSnapIns , Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

This control template places a single button on your window that may be used to start the CHT HNDSNAPZIP.EXE Utility.
This template is a child of CHT template ApplicationSnapIns(HndTools) which must first be available on the application before this extended control becomes visible for selection and placement on your procedure window. Global template ApplicationSnapins(HndTools) once added to your application must also have its "Enable?" and "Copy" switches checked, in the CHT SNAPZIP dialog.
This button control template specifically calls the HNDSNAPCALL.RunCHTSnapUnZip() function to unzip a source zip file to the target directory supplied on the template. The RunCHTSnapUnZip() function calls CHTSNAPZIP.EXE with the correct command line parameters to make this happen. Example application: HNDTESTCHTSNAPZIP.APP.

** snapzipdirstartbutton **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: SNAPIN SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: ApplicationSnapIns , Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

This control template places a single button on your window that may be used to start the CHTSNAPZIP.EXE with the "zr" parameter.
This template is a child of CHT template ApplicationSnapIns(HndTools) which must first be available on the application before this extended control becomes visible for selection and placement on your procedure window. Global template ApplicationSnapins(HndTools) once added to your application must also have its "Enable?" and "Copy" switches checked, in the CHT SNAPZIP dialog.
This button control template specifically calls the HNDSNAPCALL.RunCHTSnapZipDir() function to zip a source directory as well as the subdirectories of that source directory.
The RunCHTSnapZipDir() function calls CHTSNAPZIP.EXE with the correct command line parameters to make this happen. Example application: HNDTESTCHTSNAPZIP.APP.

** snapzipstartbutton **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: SNAPIN SUPPORT
SCOPE: (TIER-3)
CLASSES: None
PARENT: ApplicationSnapIns , Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

SnapZipStartButton template places a single button on your window that may be used to start the CHTSNAPZIP.EXE with the "zz" parameter. This template is a child of CHT template ApplicationSnapIns(HndTools) which must first be available on the application before this extended control becomes visible for selection and placement on your procedure window.
Global template ApplicationSnapins(HndTools), once added to your application must also have its "Enable?" and "Copy" switches checked, in the CHT SNAPZIP dialog. This button control template specifically calls the HNDSNAPCALL.RunCHTSnapZip() function to zip a source directory but not include the subdirectories of that source directory.
The RunCHTSnapZip() function calls CHTSNAPZIP.EXE with the correct command line parameters to make this happen. Example application: HNDTESTCHTSNAPZIP.APP.

(TIER-3) UPDATE SUPPORT LBX
** multitableupdate_lbx **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: UPDATE SUPPORT LBX
SCOPE: (TIER-3)
CLASSES: None
PARENT: Update(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

This control template drops a hidden placeholder control onto your LBX update form procedure window.
It writes code to perform an ACCESS:FileName.Update() for every table on your form procedure added to the "Other Files" area of the file tree.
When used with a CHT ListBoxBrowseExtender (LBX) browse using the FillFromView() functionality, this allows you to populate fields on your form that are not necessarily in a single table, but in multiple tables accessed by your LBX View design.
Other than positioning from the IDE window editor [optional] no further configurations are necessary on this template interface.

** updatebuttons_lbx **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: UPDATE SUPPORT LBX
SCOPE: (TIER-3)
CLASSES: None
PARENT: ListBoxBrowseExtender
  

DESCRIPTION:

©CLARION HANDY TOOLS

The _LBX suffix on this template name indicates that it is a child template associated only with (L)istbox(B)rowseE(X)tender.
This control template drops three buttons (Insert, Change and Delete) onto your LBX browse window. Other than positioning and/or cosmetically altering the buttons from the IDE window editor [optional] no further configurations are necessary on this template interface.

(TIER-4) CDROM SUPPORT
** embedhndcdromclass **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: CDROM SUPPORT
SCOPE: (TIER-4)
CLASSES: HNDCDROMClass
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedHNDCDROMClass extension creates a single, local instance of the HNDCDROMClass Classes to your procedure. It enables your app to programmatically copy files and directories to a CD/DVD Drive containing a variety of CD media types. This functionality is contained in modules HNDCDROM.INC, HNDCDROM.CLW and HNDCDROM.TLB. For a working example application look at HNDCDROMEXAMPLE.APP.
All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.

(TIER-4) DISK FILES SUPPORT
** embedhndbinfileiofunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: DISK FILES SUPPORT
SCOPE: (TIER-4)
CLASSES: HNDBinFileIO
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedHNDBinFileIOFunctions template instantiates a CHT class called HNDBinFileIO on your application procedure. The class is contained in modules HNDBINIO.INC/HNDBINIO.CLW and provides binary-level read-write access to files.

** embedhndfilefunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: DISK FILES SUPPORT
SCOPE: (TIER-4)
CLASSES: HNDFile
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedHNDFileFunctions extension creates a single, local instance of the HNDFile Class. All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.
HNDFile (the class which this template introduces to your procedure) is a completely independent file class (independent of ABC File class) and is used primarily inside CHT classes that handle low-level file I/O. Via this template, HNDFile can be used equally readily on a local procedure to open, read, write to data file(s), ISAM or SQL.
Since this is intended to be used locally on a procedure and is therefore, not global, procedures that need to independently access files, for I/O can do so without repercussions as long as the file (table) in use is shared access. CHT's HNDSETUP app and even CHT Webupdater make extensive !!use, internally of HNDFILE, to create, and or handle .HZO container files for installation purposes.

** embedhndzstorefunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: DISK FILES SUPPORT
SCOPE: (TIER-4)
CLASSES: HNDZStore
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedHNDZStoreFunctions template instantiates a CHT class called HNDZStore on your application procedure. The class is contained in modules HNDZSTOR.CLW/HNDZSTOR.CLW and provides compression storage functionality for the creation of .HZO container files.

** embedhnddosfilefunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: DISK FILES SUPPORT
SCOPE: (TIER-4)
CLASSES: HNDDOSFile
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS
EmbedHndDosFileFunctions extension creates a single, local instance of the HNDDosFile Classes. This template includes HNDDOSF.INC and HNDDOSF.CLW (HNDDosFile Class).
All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.

** globalincludecwutilfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: DISK FILES SUPPORT
SCOPE: (TIER-4)
CLASSES: ABCCWUTILFunctions
PARENT: AACHTControlPanel
  

DESCRIPTION:

©CLARION HANDY TOOLS

GlobalIncludeCWUTILFunctions extension template globally instantiates a single instance of the ABC CWUTIL.INC functions. These functions are not class-based. They appear as extended Clarion language functions everywere in your app if this template has been globally attached to your application.
You may change the default instance name if you wish.
This template is a child of AACHTControlPanel and can only be populated to your application once AACHTControlPanel has been added.

** globalincludehnddosfilefunctio... **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: DISK FILES SUPPORT
SCOPE: (TIER-4)
CLASSES: HNDDosFile
PARENT: AACHTControlPanel
  

DESCRIPTION:

©CLARION HANDY TOOLS

GlobalIncludeHNDDosFileFunctions extension creates a single, application-global instance of the HNDDosFile Class (HNDDOSF.INC/HNDDOSF.CLW).
This Class now derives the CHT class HNDCOMPRESS used file file compression.
This introduces native Clarion compression functionality to your application and requires no DLL to achieve that. This global template is a child of AACHTControlPanel and can only be populated to your application once AACHTControlPanel has been added.

** globalincludehndutilfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: DISK FILES SUPPORT
SCOPE: (TIER-4)
CLASSES: HNDUtil
PARENT: AACHTControlPanel
  

DESCRIPTION:

©CLARION HANDY TOOLS

GlobalIncludeHNDUtilFunctions extension creates a single, application-global instance of the HNDUtil Class - HNDUTIL.INC/HNDUTIL.CLW.
This template is a child of AACHTControlPanel and can only be populated to your application once AACHTControlPanel has been added.

** globalincludehndzstorefunction... **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: DISK FILES SUPPORT
SCOPE: (TIER-4)
CLASSES: HNDZStore
PARENT: AACHTControlPanel
  

DESCRIPTION:

©CLARION HANDY TOOLS

GlobalIncludeHNDZStoreFunctions extension template globally instantiates a single instance of the CHT HNDZStore class.
You may change the default instance name if you wish.
This template is a child of AACHTControlPanel and can only be populated to your application once AACHTControlPanel has been added.

** source_embeddiskexfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: DISK FILES SUPPORT
SCOPE: (TIER-4)
CLASSES: HNDDiskEx
PARENT: ABCSourceProcedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

Source_EmbedDiskExFunctions extension creates a single, local instance of the HNDDiskEx Classes.
All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.
This template is specific to ABC Source procedures which do not contain the normal embed points found in ABC window procedures like browses, reports and processes.

** source_embeddiskfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: DISK FILES SUPPORT
SCOPE: (TIER-4)
CLASSES: HNDDisk
PARENT: ABCSourceProcedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

Source_EmbedDiskFunctions extension creates a single, local instance of the HNDDisk Classes.
All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.
This template is specific to ABC Source procedures which do not contain the normal embed points found in ABC window procedures like browses, reports and processes.

** source_embedutilityfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: DISK FILES SUPPORT
SCOPE: (TIER-4)
CLASSES: HNDUtil
PARENT: ABCSourceProcedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

Source_EmbedUtilityFunctions extension creates a single, local instance of the HNDUtil Classes. All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.
This template is specific to ABC Source procedures which do not contain the normal embed points found in ABC window procedures like browses, reports and processes.

(TIER-4) EMBEDDING ADVANCED
** embedinformation **

  
VERSION: 28A.01.00
TYPE: CODE TEMPLATE
CATEGORY: EMBEDDING ADVANCED
SCOPE: (TIER-4)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedInformation code template drops boiler-plate code into any embed point where this code template is dropped, in order to identify that embed point. This generated code may be copied to any other user-created template to enable it to embed code into that specifically identified embed point.

** embedobject **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: EMBEDDING ADVANCED
SCOPE: (TIER-4)
CLASSES: Any ABC Compliant Class
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedObject template creates a single, local instance of any class that you select from the standard list of classes available in the "Application Builder Class Viewer". By default the viewer loads and displays any /LIBSRC/-located class that contains the tag !ABCIncludeFile in it's header (.INC) file.
All methods may be embedded (overridden) in the usual fashion. On the "Classes" tab, replace the words "Object Name Here" with an instance name for your object. Then select the class you wish to use in the pulldown.
NOTE: Any special includes such as drivers or LIBs that the selected object may require will have to be added into the project manually using the "Project" button.

(TIER-4) ENCRYPTION SUPPORT
** embedencryptionfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: ENCRYPTION SUPPORT
SCOPE: (TIER-4)
CLASSES: HNDEncrypt
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedEncryptionFunctions extension creates a single, local instance of the HNDEncrypt Class, located in CHT modules HNDENCRP.INC (Header module) and HNDENCRP.CLW (Code module). All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion. Example application HNDCPYDM.APP

** source_embedencryptionfunction... **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: ENCRYPTION SUPPORT
SCOPE: (TIER-4)
CLASSES: HNDEncrypt
PARENT: ABCSourceProcedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

Source_EmbedEncryptionFunctions extension creates a single, local instance of the HNDEncrypt Classes.
All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.
This template is specific to ABC Source procedures which do not contain the normal embed points found in ABC window procedures like browses, reports and processes.

(TIER-4) EVENT HANDLING SUPPORT
** embedhndsocketevents **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: EVENT HANDLING SUPPORT
SCOPE: (TIER-4)
CLASSES: HNDSocketEvents
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedHNDSocketEvents extension creates a single, local instance of the HNDSocketEvents Class. All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.

** extendedevents_ewf **

  
VERSION: 28A.01.00
TYPE: CODE TEMPLATE
CATEGORY: EVENT HANDLING SUPPORT
SCOPE: (TIER-4)
CLASSES: None
PARENT: EmbedWindowFunctions
  

DESCRIPTION:

©CLARION HANDY TOOLS

ExtendedEvents_EWF template writes the necessary code to intercept and act on extended window events that a standard Clarion application would normally be entirely blind to.
This template is a child of CHT template EmbedWindowFunctions, and as such that template must be applied to your procedure first, before this one can be added. Note that EmbedWindowFunctions is also a child template with it's own, pre-requisites.

** handyapieventswindow **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: EVENT HANDLING SUPPORT
SCOPE: (TIER-4)
CLASSES: None
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyAPIEventsWindow extension template creates a "CallBack" window that is capable of intercepting and posting a wide variety of standard window events which are not normally available inside the Clarion ACCEPT loop. Extended event equates are provided in HNDEQU.CLW. This template provides no prompts. An embeddable callback procedure is created for you automatically on dropping the template as an extension on any ABC window procedure.

(TIER-4) EXPORT CLASSES SUPPORT
** exportclassesbycategory **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: EXPORT CLASSES SUPPORT
SCOPE: (TIER-4)
CLASSES: None
PARENT: AACHTControlPanel
  

DESCRIPTION:

©CLARION HANDY TOOLS

ExportClassesByCategory extension template is designed to help you create DLLs and Local LIBs that export only the classes selected on the template.
This template works with Clarion Handy Tools classes, ABC native classes and any 3rd party classes that are ABC compliant in their design.
NOTE: To successfully create DLLs and LIBs containing CLARION HANDY TOOLS classes requires that you have a current subscription to the Source Code version of CLARION HANDY TOOLS.
ExportClassesByCategory is a child of global template AACHTControlPanel and as such, must be installed to the global extensions area by first installing AACHTControlPanel and inserting with that template selected.

** exportclassesbyname **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: EXPORT CLASSES SUPPORT
SCOPE: (TIER-4)
CLASSES: None
PARENT: AACHTControlPanel
  

DESCRIPTION:

©CLARION HANDY TOOLS

ExportClassesByName extension template is designed to help you create DLLs and Local LIBs that export only the classes selected on the template. This template works with Clarion Handy Tools classes, ABC native classes and any 3rd party classes that are ABC compliant in their design.
NOTE: To successfully create DLLs and LIBs containing CLARION HANDY TOOLS classes requires that you have a current subscription to the Source Code version of CLARION HANDY TOOLS.
ExportClassesByName is a child of global template AACHTControlPanel and as such, must be installed to the global extensions area by first installing AACHTControlPanel and inserting with that template selected.

(TIER-4) HEX CONVERSION
** embedhndhextodecimalfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: HEX CONVERSION
SCOPE: (TIER-4)
CLASSES: HNDHexToDecimal
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedHNDHexToDecimalFunctions extension creates a single, local instance of the HNDHexToDecimal Classes. All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.

(TIER-4) HZO COMPRESSION
** embedhzofunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: HZO COMPRESSION
SCOPE: (TIER-4)
CLASSES: HNDZStore
PARENT: ABCWindowProcedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedHZOFunctions extension creates a single, local instance of the HNDZStore Class on your Clarion window procedure.
All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion. This template is specific to ABC Source procedures which do not contain the normal embed points found in ABC window procedures like browses, reports and processes.

** source_embedhzofunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: HZO COMPRESSION
SCOPE: (TIER-4)
CLASSES: HNDZStore
PARENT: ABCSourceProcedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

Source_EmbedHZOFunctions extension creates a single, local instance of the HNDZStore Classes.
All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.
This template is specific to ABC Source procedures which do not contain the normal embed points found in ABC window procedures like browses, reports and processes.

(TIER-4) INSTALLATION SUPPORT
** generatehndsetupmkrinstalldeta... **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: INSTALLATION SUPPORT
SCOPE: (TIER-4)
CLASSES: None
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

This extension template provides input screens that allow the developer to create values generated into a web installer shell application like HNDSETUPMKR.APP. At time of writing this template is specific only to be used on HNDSETUPMKR.APP or a copy of that app as it addresses screen controls populated on that app assuming they're there. In the future, if necessary we will expand this particular template with a parent control template that populates the necessary screen controls on a generic window.
For the express purpose of building as many installers as the developer needs, another template of that sort is really not necessary. Developers can simply make a copy of HNDSETUPMKR.APP, customize the icons, and images and adjust these template prompts as required and have a completed, secure, web-installer in minutes.
The functionality in this template replaces the web-installer generator component that was previously part part of HNDSETUP.APP. Now with HNDSETUP.APP (to create HZO's) and HNDSETUPMKR.APP or a renamed copy of HNDSETUPMKR.APP it is possible to build and compile a complete web-install application. As of build 20C.00, developers are able to also install compiled Clarion Projects as well as compiled Clarion Applications. It is also possible to distribute a ready-to-compile Clarion application or Clarion project in source code.

** generatehndsetupmkrinstalldeta... **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: INSTALLATION SUPPORT
SCOPE: (TIER-4)
CLASSES: None
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

This extension template provides input screens that allow the developer to create values generated into a web installer shell application like HNDSETUPMKR.APP. At time of writing this template is specific only to be used on HNDSETUPMKR.APP or a copy of that app as it addresses screen controls populated on that app assuming they're there. In the future, if necessary we will expand this particular template with a parent control template that populates the necessary screen controls on a generic window.
For the express purpose of building as many installers as the developer needs, another template of that sort is really not necessary. Developers can simply make a copy of HNDSETUPMKR.APP, customize the icons, and images and adjust these template prompts as required and have a completed, secure, web-installer in minutes.
The functionality in this template replaces the web-installer generator component that was previously part part of HNDSETUP.APP. Now with HNDSETUP.APP (to create HZO's) and HNDSETUPMKR.APP or a renamed copy of HNDSETUPMKR.APP it is possible to build and compile a complete web-install application. As of build 20C.00, developers are able to also install compiled Clarion Projects as well as compiled Clarion Applications. It is also possible to distribute a ready-to-compile Clarion application or Clarion project in source code.

(TIER-4) MENU SUPPORT
** generateapplicationmenus **

  
VERSION: 28A.01.00
TYPE: UTILITY TEMPLATE
CATEGORY: MENU SUPPORT
SCOPE: (TIER-4)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

GenerateApplicationMenus template generates a text file with the extension .MNU which contains a nested description of your application's menu structures organized on a procedure-by-procedure basis.

(TIER-4) NETWORK SUPPORT
** embedhndidialclassfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: NETWORK SUPPORT
SCOPE: (TIER-4)
CLASSES: HNDIDial
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedHndIDialClassFunctions extension creates a single, local instance of the HNDIDial Class. All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.

** embedhndipaddressfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: NETWORK SUPPORT
SCOPE: (TIER-4)
CLASSES: HNDIPAddress
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedHndIPAddressFunctions extension creates a single, local instance of the HNDIPAddress Class. All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.

(TIER-4) WINDOWS O/S SUPPORT
** embeddockingwindow **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: WINDOWS O/S SUPPORT
SCOPE: (TIER-4)
CLASSES: HNDDockingWindow
PARENT: Any ABC/CHT MDI Main
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedDockingWindow template creates a threaded docking window that is able to attach itself to (dock with) your MAIN MDI PARENT window on the left, right, as configured on the template. This unique window then acts as a container for command buttons which can launch other procedures and functions from inside the MAIN procedure or generate events inside the MAIN (hosting) procedure.
See HNDDOCWN.INC, HNDDOCWN.CLW to study the header, code modules respectively.

** embedfilenotifyfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: WINDOWS O/S SUPPORT
SCOPE: (TIER-4)
CLASSES: HNDFileNotify
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedFileNotifyFunctions extension creates a single, local instance of the HNDFileNotify Classes. All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion. DEMO Application: HNDMONITORDIRECTORYSRVC.APP.

** embedhndcallbackfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: WINDOWS O/S SUPPORT
SCOPE: (TIER-4)
CLASSES: HNDCallBack
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedHNDCallBackFunctions extension creates a single, local instance of the HNDCallBack Classes. All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion. This template attaches the CHT HNDCallBack Class to your window procedure as does the CHT Template EmbedWindowFunctions. Both templates are not needed on the same window since both will deliver the services of HNDCallBack.
This template brings in a narrower set of callback functions designed to intercept control and low-level window events on your Clarion window procedure.

** embedhndcaptureconsole **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: WINDOWS O/S SUPPORT
SCOPE: (TIER-4)
CLASSES: HNDCaptureConsole
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

EmbedHNDCaptureConsole extension creates a single, local instance of the HNDCaptureConsole Classes to your procedure. It enables your app to perform a RUN() via HNDCaptureConsole.Run which will become "captured" in such a way as to direct all output (including errors) back to your application via the HNDCaptureConsole.Run return value.
Since HNDCaptureConsole functionality is based in CHT DLL HNDCAPCON.DLL, this class requires you to ship HNDCAPCON.DLL with your application. Use of this template ensures that the standard ShipList includes a notation to that effect. The template provides a switch that configures your app to copy HNDCAPCON.DLL to your executable output directory as further configured in your .RED settings.
See HNDBATCHRUNNER.APP, HNDCODESIGN.APP, for demonstrations of this template in action. All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.
As of Build 27A.03 this template provides "CODE-TABS" which implement code insertion points inside your application as an alternative to embedding code. These insertion points are based on embedded code found most frequently in CHT example and utility applications.
To determine if a given "CODE-TAB" will drop your code where it's needed, experiment first, by dropping a comment followed by opening the EMBEDITOR and searching for your comment.

** globalincludehndcaptureconsole... **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: WINDOWS O/S SUPPORT
SCOPE: (TIER-4)
CLASSES: HNDCaptureConsole
PARENT: AACHTControlPanel
  

DESCRIPTION:

©CLARION HANDY TOOLS

GlobalIncludeHNDCaptureConsoleFunctions extension template globally instantiates a single instance of the CHT HNDCaptureConsole class.
You may change the default instance name if you wish. This template is a child of AACHTControlPanel and can only be populated to your application once AACHTControlPanel has been added.
NOTE: This template is auto-populated (once) to the global area of your application, when any one of our "CHT Snap" functionalities is enabled on the global template called Application Snap-Ins.
At time of writing, these are: CHT SnapEdit, CHT SnapSMTP and CHT SnapMAPI.

** handycomeventloggercontrol **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: WINDOWS O/S SUPPORT
SCOPE: (TIER-4)
CLASSES: HNDEventLoggerClass
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyCOMEventLoggerControl control template places a CHT COM Event Logger Control from HNDEVENTLOGGER.DLL on your application window. CHT's Event Logger Control provides an easy-to-use COM interface inside your application procedures for writing Events, Errors and Warnings to the SYSTEM APPLICATION LOG where they can be found and read using EVENTVWR.MSC.
See HNDEVEER.INC, HNDEVEER.CLW and HNDEVEER.TLB to study the header, code module and method interfaces respectively. A demonstration application called HNDEVENTLOGGERDEMO.APP illustrates use of the template and calling HNDEventLoggerClass methods.

** handyw32eventloggercontrol **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: WINDOWS O/S SUPPORT
SCOPE: (TIER-4)
CLASSES: HNDErrorClass
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyW32EventLoggerControl control template places a CHT Win32 Event Logger Control on your application window. CHT's Win32 Event Logger Control provides an easy-to-use HNDERROR class application procedures for writing Events, Errors and Warnings to the SYSTEM APPLICATION LOG where they can be found and read using EVENTVWR.MSC.
See HNDERROR.INC, HNDERROR.CLW to study the header, code module and method interfaces respectively.

** handywindowsdebugviewbutton_ew... **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: WINDOWS O/S SUPPORT
SCOPE: (TIER-4)
CLASSES: None
PARENT: EmbedWindowFunctions , Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyWindowsDebugViewButton_EWF control template places a button on your window that opens MS Windows DebugView using "DBGVIEW.EXE". This template is a child of CHT template EmbedWindowFunctions which must first be available on the procedure before this extended control becomes visible for selection and placement on your procedure window.

** handywindowseventviewerbutton_... **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: WINDOWS O/S SUPPORT
SCOPE: (TIER-4)
CLASSES: None
PARENT: EmbedWindowFunctions , Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyWindowsEventViewerButton_EWF control template places a button on your window that opens MS Windows Application Event and Error Log Viewer using "EVENTVWR.MSC".
This template is a child of CHT template EmbedWindowFunctions which must first be available on the procedure before this extended control becomes visible for selection and placement on your procedure window.

** handywindowsservicesviewerbutt... **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: WINDOWS O/S SUPPORT
SCOPE: (TIER-4)
CLASSES: None
PARENT: EmbedWindowFunctions , Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

HandyWindowsServicesViewerButton_EWF control template places a button on your window that opens MS Windows Services Viewer using "SERVICES.MSC".
This template is a child of CHT template EmbedWindowFunctions which must first be available on the procedure before this extended control becomes visible for selection and placement on your procedure window.

(TIER-4) XML2HTML SUPPORT
** embedstandardwebpageheader **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: XML2HTML SUPPORT
SCOPE: (TIER-4)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

This template may be used to build apps that generate HTML Help files and web pages.
While it's normal to develop style sheets in downloadable files so the the same set of style sheets may be shared via link statements amongst numerous web pages and even different web sites, there are situations where it's more expedient to have the style sheet internal to the HTML document in order to make the help document viewable off-line.
This template can be added to HTML generating procedures to either assist in generating both screen and print style sheets internal to HTML help documents such as those created by the example applications cited above.
At this point in time, most items of a design and cosmetic nature can be changed on the template interface so that the things you're most likely to want changed are under your direct control. Template changes can be applied in the application's generated output at generation-time by entering constant values directly on the template or, in the event you want to apply changes at application run-time, using variables that the application looks up elsewhere in a configuation file.
Not all settings are fully variable, but all key ones are. If you find this template currently too restricting, please let us know and we'll make all settings fully configurable. This template now generates HTML5 compatible output.

** embedstandardwebpageheadershor... **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: XML2HTML SUPPORT
SCOPE: (TIER-4)
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CLARION HANDY TOOLS

This template may be used to build apps that generate HTML from XML templates built with CHTSNAPEDIT.EXE. While it's normal to develop style sheets in downloadable files so the the same set of style sheets may be shared via link statements amongst numerous web pages and even different web sites, there are situations where it's more expedient to have the style sheet internal to the HTML document in order to make the help document or HTML email viewable off-line. This template can be added to HTML generating procedures to either assist in generating a screen style sheet that is internal to HTML help documents and HTML emails.
At this point in time, most items of a design and cosmetic nature can be changed on the template interface so that the things you're most likely to want changed are under your direct control. Template changes can be applied in the application's generated output at application generation-time by entering constant values directly on the template or, in the event you want to apply changes at application run-time, using variables that the application looks up elsewhere in a configuation file. Not all settings are fully variable, but all key ones are. If you find this template currently too restricting, please let us know and we'll make all settings fully configurable. This template now generates HTML5 compatible output.
We're regularly adding features into CHTSNAPEDIT.EXE and into this template that allow the developer to add XML embeds that are used as the complete source of certain generated HTML items that were previously generated by whatever parser is built with this template, for instance HNDXML2HTMLGEN.APP. That puts generate-output control more completely in the XML source template, where it should be, not in the parser. Ultimately the parser should act only to cut and paste the XML embed points into whole cloth, HTML, while checking for errors in the XML and replacing missing XML embed points with generated default values only when the source XML is incomplete.

(TIER-4) ZIP SUPPORT
** embedcompressionfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: ZIP SUPPORT
SCOPE: (TIER-4)
CLASSES: HNDCompress
PARENT: Any ABC/CHT Procedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

This extension creates a single, local instance of the HNDCompress Class. All methods appear in the "Local Objects" section of the procedure to which this extension is applied and may be embedded in the usual ABC fashion.

** embednetzipfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: ZIP SUPPORT
SCOPE: (TIER-4)
CLASSES: HNDNetZipperClass
PARENT: ABCSourceProcedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

This extension creates a single, local instance of the HNDNetZipperClass inside a CHT Source procedure. All methods appear in the "Local Objects" section of the source procedure to which this extension is applied and may be embedded in the usual ABC fashion. This template is specific to ABC Source procedures which do not contain the normal embed points found in ABC window procedures like browses, reports and processes. The template incorporates a CHT .NET Zipper Wrapper called HNDNetZipperClass into your procedure.
See HNDNETZIPPER.INC, HNDNETZIPPER.CLW and HNDNETZIPPER.TLB to study the header, code module and method interfaces respectively. A demonstration application called HNDZIPNET.APP illustrates use of the template and calling HNDNetZipper Class methods.
Associated files: HNDNETZIPPR.TLB (to register the control), HNDNETZIPPER.DLL, (Low level .NET zip classes).
A "CODE-TAB" has been added to allow the insertion of code into the AutoInit() method. Two text fields provide for insertion of procedure code into the BEFORE generated code and AFTER generated code area.
To determine if a given "CODE-TAB" will drop your code where it's needed, experiment first, by dropping a comment followed by opening the EMBEDITOR and searching for your comment.

** embedzipqueryparserfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: ZIP SUPPORT
SCOPE: (TIER-4)
CLASSES: HNDQueryBuilder HNDParse HNDComZipClass HNDDisk HNDUtil HNDError
PARENT: HandyCOMZipperControl
  

DESCRIPTION:

©CLARION HANDY TOOLS

This extension creates a single, local instance of the HNDQueryBuilder and hooks it into a CHT Zip procedure created by the HandyCOMZipperControl template. It allows for CHT-Style queries to filter file selection during the creation of ZIP files.
This template is a child of HandyComZipperControl and can only be applied to your procedure if that template is already present.

** handycomzippercontrol **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: ZIP SUPPORT
SCOPE: (TIER-4)
CLASSES: HNDComZipClass
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

This control template places a CHT COM Zipper Control from HNDZIPR.OCX on your application window.
HandyCOMZipperControl provides two interface controls, a string control for messages and a progress control to indicate progress through bulk zip and unzip operations. Since this is a "Control" template it operates from a window. If a silent, or invisible zip operation is required, simply hide the window. Operations provided are: bulk directory zip with mask, bulk directory unzip with mask, single file zip, and single file unzip.
The template incorporates a CHT COM Zipper Wrapper called HNDComZipClass into your procedure.
See HNDZIPPR.INC, HNDZIPPR.CLW and HNDZIPPR.TLB to study the header, code module and method interfaces respectively.
A demonstration application called HNDBACKUPCONFIGOCX.APP illustrates use of the template and calling HNDComZipClass Class methods.

** handynetzippercontrol **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: ZIP SUPPORT
SCOPE: (TIER-4)
CLASSES: HNDNetZipperClass
PARENT: Window(ABC)
  

DESCRIPTION:

©CLARION HANDY TOOLS

This control template places a CHT .NET Zipper Control from HNDNETZIPPER.DLL on your application window. This template provides two interface controls, a string control for messages and a progress control to indicate progress through bulk zip and unzip operations. Since this is a "Control" template it operates from a window. If a silent, or invisible zip operation is required, simply hide the window. Operations provided are: bulk directory zip with mask, bulk directory unzip with mask, single file zip, and single file unzip.
The template incorporates a CHT .NET Zipper Wrapper called HNDNetZipperClass into your procedure.
See HNDNETZIPPER.INC, HNDNETZIPPER.CLW and HNDNETZIPPER.TLB to study the header, code module and method interfaces respectively. A demonstration application called HNDNETZIPDEMO.APP illustrates use of the template and calling HNDNetZipper Class methods.
Required DLLs: HNDNETZIPPER.DLL

** source_embedzipfunctions **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: ZIP SUPPORT
SCOPE: (TIER-4)
CLASSES: HNDComZipClass
PARENT: ABCSourceProcedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

This extension creates a single, local instance of the HNDComZipClass. All methods appear in the "Local Objects" section of the source procedure to which this extension is applied and may be embedded in the usual ABC fashion. This template is specific to ABC Source procedures which do not contain the normal embed points found in ABC window procedures like browses, reports and processes. See example application HNDSOURCEMAPIDEMO.APP and HNDSOURCESMTPDEMO.APP

** source_writezipcode_sezf **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: ZIP SUPPORT
SCOPE: (TIER-4)
CLASSES: HNDComZipClass
PARENT: ABCSourceProcedure
  

DESCRIPTION:

©CLARION HANDY TOOLS

This extension is a child of Source_EmbedZipFunctions, hence the _SEZF extension in the name. All methods appear in the "Local Objects" section of the source procedure to which this extension is applied and may be embedded in the usual ABC fashion. This template is specific to ABC Source procedures which do not contain the normal embed points found in ABC window procedures like browses, reports and processes. See example application HNDSOURCEMAPIDEMO.APP.

ABC PROCEDURE BROWSE SUPPORT EXPB
** explorerbrowse **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: EDURE BROWSE SUPPORT EXPB
SCOPE: ABC PROCEDURE
CLASSES: HNDBrowse HNDBrwFilter
PARENT: BrowseBox(ABC)
  

DESCRIPTION:

©CHT (Clarion Handy Tools)

ExplorerBrowse template transforms a standard single sort browse into a Windows Explorer-like multi sort browse.
When a column is clicked with the programmer-determined alert key, regardless of whether the field in that column is a key field or not, that column becomes the current sort column.
NOTE: When an unkeyed field is used as the basis for the column sort order, the driver is forced to build a dynamic key.
This can seriously slow the performance of ISAM-Style data bases. Use with discretion. This extension creates a single, local instance of the HNDBrowse Classes.
This template is a child of BrowseBox(ABC). In other words, this template can only be applied to an existing ABC Browse.

** explorerbrowserecordtagger **

  
VERSION: 28A.01.00
TYPE: CODE TEMPLATE
CATEGORY: EDURE BROWSE SUPPORT EXPB
SCOPE: ABC PROCEDURE
CLASSES: HNDBrowse
PARENT: ExplorerBrowse
  

DESCRIPTION:

©CHT (Clarion Handy Tools)

ExplorerBrowseRecordTagger code template inserts event driven code that results in one-click, on-off record tagging for your ExplorerBrowse.
Single or multiple data record fields in the primary file can be toggled on and off with a single click on the column and row where the designated field is populated.
NOTE: For multiple ExplorerBrowses on the same window that require tagging, the developer should populate a separate instance of this template for each browse.
This template is a child of ExplorerBrowse, and as such that template must be present before this one can be applied to the procedure.

** explorerbrowserecordtaggerex **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: EDURE BROWSE SUPPORT EXPB
SCOPE: ABC PROCEDURE
CLASSES: HNDBrowse
PARENT: ExplorerBrowse
  

DESCRIPTION:

©CHT (Clarion Handy Tools)

ExplorerBrowseRecordTaggerEx extension template inserts event driven code that results in one-click, on-off record tagging for your ExplorerBrowse.
Single or multiple data record fields in the primary file can be toggled on and off with a single click on the column and row where the designated field is populated (hot key configurable).
NOTE: For multiple ExplorerBrowses on the same window that require tagging, the developer should populate a separate instance of this template for each browse.
This template is a child of ExplorerBrowse, and as such that template must be present before this one can be applied to the procedure.
NOTE: This works exactly like ExplorerBrowseRecordTagger but has been implemented for developer convenience as an EXTENSION template rather than a CODE template.

** setexplorerbrowsequerybuilderb... **

  
VERSION: 28A.01.00
TYPE: EXTENSION TEMPLATE
CATEGORY: EDURE BROWSE SUPPORT EXPB
SCOPE: ABC PROCEDURE
CLASSES: None
PARENT: None
  

DESCRIPTION:

©CHT (Clarion Handy Tools)

SetExplorerBrowseQueryBuilderBindings template can be used to generate field bindings for CHT Query Builder into a CHT Method called SetDynamicBindings(BYTE xFlag=False). Multiple instances of this template can be used to bind fields from different tables with unique "friendly" names for query purposes using CHT Query Builder.
SetDynamicBindings is not called anywhere by CHT classes. This method is a single location in which to aggregate a number of different query build field bindings to be inserted before calls to QBInterface() the CHT Query Builder interface in order to change the list of fields presented for query building.

WINDOW BROWSE SUPPORT EXPB
** explorerbrowselocatorcontrol **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: ROWSE SUPPORT EXPB
SCOPE: WINDOW
CLASSES: None
PARENT: ExplorerBrowse
  

DESCRIPTION:

©CHT (Clarion Handy Tools)

ExplorerBrowseLocatorControl template creates a companion locator control for the CHT ExplorerBrowse. It can locate on any field in your browse including unkeyed fields and fields in joined tables. Options are provided to force selection of either the locator or the browse after a locate is performed and after a browse order change is applied.
This template has the LocatorAsFilter feature fully enabled allowing the change of filter keywords right on the template, on a column-by-column basis.
This template is a child template of CHT ExplorerBrowse and as such, that template must be present before this one can be added.

** explorerbrowselocatorcontrolex **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: ROWSE SUPPORT EXPB
SCOPE: WINDOW
CLASSES: None
PARENT: ExplorerBrowse
  

DESCRIPTION:

©CHT (Clarion Handy Tools)

ExplorerBrowseLocatorControlEx template creates a companion locator control for the CHT ExplorerBrowse. It has all of the features of ExplorerBrowseLocatorControl plus some extended features including a GO button and the ability to blank the browse when the locator is in filter mode (setting passed up from ExplorerBrowse) and the locator is empty. When the locator is in "Drill-Down" mode, a "breadcrumbs" display control provides the contents of the composite query either in CHT query language or in raw SQL depending on the contents of the display control provided.
The locator control can locate on any field in your browse including unkeyed fields and fields in joined tables. Options are provided to force selection of either the locator or the browse after a locate is performed and after a browse order change is applied.
This template is a child template of CHT ExplorerBrowse and as such, that template must be present before this one can be added.

** explorerbrowseonecolumnqueryco... **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: ROWSE SUPPORT EXPB
SCOPE: WINDOW
CLASSES: None
PARENT: ExplorerBrowse
  

DESCRIPTION:

©CHT (Clarion Handy Tools)

ExplorerBrowseOneColumnQueryControl control provides a query control attached to a single column in your browse, report or process to produce a STARTSWITH or CONTAINS filter which limits the returned data based on the value typed into the control. Several instances of this control template may be used in combination to provide a multi-column filter. This control works with ISAM or SLQ implementations. SEE HNDACCES.APP for an SQL example of this template.
Remember that this template does not have its own GO button to execute the query as it's used most often in combination with other instances of itself. The GO button is populated separately once you have one or more instances of this template populated. That addon to this template is called ExplorerBrowseQueryGoButton.

** explorerbrowseonecolumnquerydr... **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: ROWSE SUPPORT EXPB
SCOPE: WINDOW
CLASSES: None
PARENT: ExplorerBrowse
  

DESCRIPTION:

©CHT (Clarion Handy Tools)

ExplorerBrowseOneColumnQueryDrop control provides a query control attached to a single column in your browse, report or process to produce a STARTSWITH or CONTAINS filter which limits the returned data based on the value typed into the control.
Several instances of this control template may be used in combination to provide a multi-column filter. This control works with ISAM or SLQ implementations.
An accompanying template ExplorerBrowseQueryGoButton provides a forced window reset to reset the browse and apply any filter values in this control (or multiples of this control) on your window.

** explorerbrowsequerybuildercont... **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: ROWSE SUPPORT EXPB
SCOPE: WINDOW
CLASSES: None
PARENT: ExplorerBrowse
  

DESCRIPTION:

©CHT (Clarion Handy Tools)

ExplorerBrowseQueryBuilderControl template creates a companion Query Builder control for CHT ExplorerBrowse. It can query on any field in your browse including unkeyed fields and fields in joined tables as long as they are either displayed on the browse or declared in the "Query Hot Fields" dialog provided by the ExplorerBrowse template. Two display controls are included, each of which displays a different version of the query.
The CHT: display control displays the CHT query language version of your query. The SQL: display control displays the SQL query language version of your query if your browse is set to "Use SQL", otherwise the Clarion query language version of your query is displayed. One or both of these display controls may be deleted from your window if you do not wish to display the current query.
See demonstration application HNDSQL1.APP for an example of this template in action. Multiple copies of this control may be used on the same window, attached separately to multiple ExplorerBrowse instances on that same window. This template is a child template of CHT ExplorerBrowse and as such, that template must be present before this one can be added.

** explorerbrowsequerygobutton **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: ROWSE SUPPORT EXPB
SCOPE: WINDOW
CLASSES: None
PARENT: QueryParsingFilterControl
  

DESCRIPTION:

©CHT (Clarion Handy Tools)

ExplorerBrowseQueryGoButton template places a companion, button control for CHT Template ExplorerBrowseOneColumnQueryControl. It forces a browse reset via ThisWindow.Reset(True) thus refreshing the browse and re-applying any query values present in one (or more) ExplorerBrowseOneColumnQueryControl templates present on the window.
This template is a child template of CHT ExplorerBrowse and as such, that template must be present before this one can be added.

** handycominternetexplorercontro... **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: ROWSE SUPPORT EXPB
SCOPE: WINDOW
CLASSES: HNDInternetExplorer
PARENT: Window(ABC)
  

DESCRIPTION:

©CHT (Clarion Handy Tools)

HandyCOMInternetExplorerControl control template places a MicroSoft COM Internet Explorer Control from SHDOCVW.DLL on your application window. CHT's Internet Explorer Control provides a full-feature, user-configurable IE browser that lets users easily control browser behaviors, and interact with the DOM (Document Object Model) from inside their Clarion application.
SHDOCVW.DLL provides functionality such as navigation and history, and is commonly referred to as the WebBrowser control. When your application hosts the WebBrowser control, it obtains all the functionality of Internet Explorer except for the user interface. This means that you will need to provide your own implementations of toolbars and menus.
See HNDSHDVW.INC, HNDSHDVW.CLW and HNDSHDVW.TLB to study the header, code module and method interfaces respectively. A demonstration application called HNDBRWCL.APP illustrates use of the template and calling HNDInternetExplorer Class methods. Other demo apps using this control: HNDPRINTHTML.APP, HNDPREVIEWER.APP

** handyquerytracingbutton_expb **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: ROWSE SUPPORT EXPB
SCOPE: WINDOW
CLASSES: HNDBrowse
PARENT: ExplorerBrowse
  

DESCRIPTION:

©CHT (Clarion Handy Tools)

HandyQueryTracingButton_EXPB control template places a button on your window that enables DebugView-based query tracing on CHT browse extension template, ExplorerBrowse. This is a child template of ExplorerBrowse, which must first be available on the procedure before this extended control becomes visible for selection and placement on your procedure window.
The latest modification includes a new flag (HPROP:FullSelect) that exposes the entire SQL select string as well as a switch that re-directs tracing output to HNDSQLTRACE.APP.

** popfavoritequeries_expb **

  
VERSION: 28A.01.00
TYPE: CONTROL TEMPLATE
CATEGORY: ROWSE SUPPORT EXPB
SCOPE: WINDOW
CLASSES: HNDBrwFilter
PARENT: ExplorerBrowse
  

DESCRIPTION:

©CHT (Clarion Handy Tools)

PopFavoriteQueries_EXPB creates a set of controls that pop up pre-built queries and query macros saved to a file defined in your dictionary and inserts them into a query entry control also provided on the template.
Dropping this template has the combined effect of dropping QueryParsingFilterControl with some features turned off plus PopFavoriteQueries_QPFC and it does so in a single step rather than having to drop the other two templates one after the other.

See the predefined tables "PreQuery" and "PreMacro" in HNDACCES.DCT and HNDO.DCT. These tables should be imported into your app's dictionary as a model for pre-defined queries or macros data tables. The table names and type (ISAM or SQL) doesn't really matter to this template, nor do the file prefixes.
However, field names and data size definitions are required to be as defined in the PreQuery and PreMacro table designs. CHT has provided an importable JumpStart procedure for browsing, editing and inserting pre-built queries. See the CHT Jumpstart Procedures interface. Queries entered on the query entry control can, of course, be saved into your pre-defined queries table on the fly by users. Deletes of pre-defined queries is also allowed -- no Macro saving or deleting, though. Adding/deleting controls are provided for queries by the template but these may be hidden if you want to disallow all operations except query and macro selection and execution. Demo apps to look at: HNDSQLPOPFAVEXPB.APP (SQL Demo), HNDISAMPOPFAVEXPB.APP (ISAM Demo).