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

TEMPLATES BY CATEGORY (TIERS 1,2)
(BUILD: 28A.00.00)

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

  
VERSION: 28A.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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 EXPB
** explorerbrowse **

  
VERSION: 28A.00.00
TYPE: EXTENSION TEMPLATE
CATEGORY: BROWSE SUPPORT EXPB
SCOPE: (TIER-1)
CLASSES: HNDBrowse HNDBrwFilter
PARENT: BrowseBox(ABC)
  

DESCRIPTION:

©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.
"CODE-TABS" have been added to allow the insertion of procedure CODE into EXPB.ApplyFilter(), EXPB.ClearFiltersAndLocators(), EXPB.AutoInit() methods 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.

** explorerbrowselocatorcontrol **

  
VERSION: 28A.00.00
TYPE: CONTROL TEMPLATE
CATEGORY: BROWSE SUPPORT EXPB
SCOPE: (TIER-1)
CLASSES: None
PARENT: ExplorerBrowse
  

DESCRIPTION:

©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.00.00
TYPE: CONTROL TEMPLATE
CATEGORY: BROWSE SUPPORT EXPB
SCOPE: (TIER-1)
CLASSES: None
PARENT: ExplorerBrowse
  

DESCRIPTION:

©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.00.00
TYPE: CONTROL TEMPLATE
CATEGORY: BROWSE SUPPORT EXPB
SCOPE: (TIER-1)
CLASSES: None
PARENT: ExplorerBrowse
  

DESCRIPTION:

©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.00.00
TYPE: CONTROL TEMPLATE
CATEGORY: BROWSE SUPPORT EXPB
SCOPE: (TIER-1)
CLASSES: None
PARENT: ExplorerBrowse
  

DESCRIPTION:

©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.00.00
TYPE: CONTROL TEMPLATE
CATEGORY: BROWSE SUPPORT EXPB
SCOPE: (TIER-1)
CLASSES: None
PARENT: ExplorerBrowse
  

DESCRIPTION:

©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.
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.

** explorerbrowsequerygobutton **

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

DESCRIPTION:

©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.

** explorerbrowserecordtagger **

  
VERSION: 28A.00.00
TYPE: CODE TEMPLATE
CATEGORY: BROWSE SUPPORT EXPB
SCOPE: (TIER-1)
CLASSES: HNDBrowse
PARENT: ExplorerBrowse
  

DESCRIPTION:

©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.00.00
TYPE: EXTENSION TEMPLATE
CATEGORY: BROWSE SUPPORT EXPB
SCOPE: (TIER-1)
CLASSES: HNDBrowse
PARENT: ExplorerBrowse
  

DESCRIPTION:

©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.

** handycominternetexplorercontro... **

  
VERSION: 28A.00.00
TYPE: CONTROL TEMPLATE
CATEGORY: BROWSE SUPPORT EXPB
SCOPE: (TIER-1)
CLASSES: HNDInternetExplorer
PARENT: Window(ABC)
  

DESCRIPTION:

©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.00.00
TYPE: CONTROL TEMPLATE
CATEGORY: BROWSE SUPPORT EXPB
SCOPE: (TIER-1)
CLASSES: HNDBrowse
PARENT: ExplorerBrowse
  

DESCRIPTION:

©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.
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.

** popfavoritequeries_expb **

  
VERSION: 28A.00.00
TYPE: CONTROL TEMPLATE
CATEGORY: BROWSE SUPPORT EXPB
SCOPE: (TIER-1)
CLASSES: HNDBrwFilter
PARENT: ExplorerBrowse
  

DESCRIPTION:

©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).
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.

** setexplorerbrowsequerybuilderb... **

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

DESCRIPTION:

©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.

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

  
VERSION: 28A.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.00.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.

** globalincludehndcaptureconsole... **

  
VERSION: 28A.00.00
TYPE: EXTENSION TEMPLATE
CATEGORY: WINDOWS O/S SUPPORT
SCOPE: (TIER-2)
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.

** globalincludehndshellfunctions **

  
VERSION: 28A.00.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.00.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.00.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.