Download latest version
Getting Compile Errors after upgrading? (click
Here). Why should I use the new
threadsafe message class? (See FAQ 4.10)
Version 2.16 - Released 13 February 2012
- Class fix - region created around the prompt (for C7 and up) prevents
hyperlink operation. Disabled the C7 work around in C8.
Version 2.16 - Released 19 May 2011
- TPL change - option to prevent pdefine generation.
- DefaultButtonText property moved to the global class (when in threadsafe
mode) (fixed csLocale problem in threadsafe class).
- Control fonts only set when compiled in C5.5. C6 and up takes on the
font properties of the window (was setting fonts for all controls for all
versions of Clarion).
Version 2.15 - Released 6 October 2010
- C7 template change - one version of C7.2 required #boxed tpl
sections to use text.
- TPL change - support for copykey in the template. Means you can easily
use the CtrlC in your message to copy the messagetext to the clipboard.
- Tpl change - Better support for SelfService operation. At the template
level you can set the behaviour of messages() in your selfservice apps.
- TPL fix - code template to set the timeout was not using the value
Version 2.13 - Released 18 August 2010
- Template change - pDefine for threaded message class was causing compile
errors (when c modules where used in a project). Project changed from
MSG:ThreadSafe to _MSGThreadSafe_
- Template change - default to using the Capesoft MessageBox with features
Version 2.12 - Released 28 May 2010
- Template change - template setting for a global timeout for messages
(there is a one time warning for this setting for webserver apps to set this
- Template change - %MesBoxGloSetup group for set settings (so that common
code is used).
- Class fix - ResetDontShowSetting was not checked correctly (for storing
NotAgain settings in the registry).
Version 2.11 - Released 21 May 2010
- Fix for using default logfile (was not logging messages in the default
Version 2.10 - Released 20 May 2010
- Clip the putreg and getreg key for the NotAgain state (was not being
clipped so the settings were stored in the incorrect place). The settings
are moved to the new place (so notAgain state will not be reset).
- Fix - Project define (for Threaded MessageBox state) in MultiProj apps
was not being set correctly.
Version 2.09 - Released 13 May 2010
- Removed critical section reference.
- Export the MessageBoxGlobal unthreaded class for Multi-DLL apps.
Version 2.08 - Released 28 April 2010
- New Thread Safe message class - requires selection in the GlobalExtension
template (for details on implementation, see
- CriticalSection can use ABCCriticalSection or NetTalkCriticalSection
classes (assigned in the constructor, not in the init method).
- New OnlyOnce properties in the EnhancedMessageClass (threadsafe class
does not use the old StaticFeatures property) allows temporary properties to
be set for the next instance of a message().
- No Wait and release call required in the TakeEvent, SendClose and Open
Version 2.07 - Released 8 January 2010
- New Workaround for Clarion 7.1 prop:full bug - 2.06 workaround was not
working in some cases.
Version 2.06 - Released 4 January 2010
- Workaround for Clarion 7.1 bug - don't use prop:full for the messagebox
Version 2.05 - Released 17 June 2009
- Handcoded limiting (for the logfile). Good for SQL type limiting
- Fix for the copy (when passing 2 in the Style Parameter) in the Extended
Version 2.04 - Released 10 November, 2008
- Clarion 7 compatible install.
Version 2.03 - Released 22 October, 2008
- internal - Removed error check (now obsolete as queues no longer used).
This could have caused non-display of some items if a error code was not
reset before the affected methods.
- Clarion7 support. Fixed some template issues that were preventing
MessageBox template from registration.
Version 2.02 - Released 16 October, 2008
- Fix occasional GPF in message class. (if button text is used for a single
button). Regression in 2.00.
Version 2.01 - Released 09 October, 2008
- Revert to global unthreaded class with critical section. Fix regression
for only log first message on a thread.
- Re-included cwSynch.inc for critical section class.
Version 2.00 - Released 06 October, 2008
- Made global class threaded for C6. Use a Unthreaded
class (C6 Only) for CanConstruct property (so that init is only called from
construct after the first init is called from the app). Template and class
- Init method UseABCClasses parameter is superfluous
- Property self.UseDefaultLogFile is set in the app.
- Removed cwSynchC.inc include, and criticalsection
class property (introduced in 1.96). Not required now that the class is a
- Removed the 3 queue properties - reworked with arrays
so that the class can be made threaded. No queues are newed or disposed in
the init and kill methods. Affected methods: BreakStringToQueue,
ExtractStringToQueue, CreateStrings, CreateButtons, PreOpen
- Unthreaded class (C6 apps) CanConstruct property is
set in the init method.
- New method: RemoveIllegalINIChars - fix for messages
containing illegal INI chars (for a variable - like <13,10> or '=') for
- New construct and destruct methods (for C6).
- Default logfile is now threaded (including the
Version 1.98 - Released 3 September, 2007
- Fix LimitLog derived method - SQL compliant (not get first record by
Version 1.97 - Released 24 August, 2007
- Fix Template regression - was calling TryDelete (invalid method call)
instead of Delete(0) in LimitLog.
Version 1.96 - Released 23 August, 2007
- Class Fix - made the class thread-safe (particularly when writing to the
- Template Change - use TryInsert (in the derived InsertLog method when
using your own logfile) and TryDelete (in the LimitLog) to prevent error
handling within the ABC classes.
Version 1.95 - Released 23 August, 2007
- Template Fix (regression in 1.93) - was not setting the Logging static
property (for Automatically log messages set in the global extension template).
Version 1.94 - Released 20 July, 2007
- Fix (regression in 1.93) - was generating incorrect code for the name
check when using the default ASCII logfile.
Version 1.93 - Released 13 April, 2007
- Increased minimum message text (from 2048 to 4096) - but the prompt
control can only handle 1024 chars, so this is superfluous.
- Changed default logfile 'User' field to 'Username' (reserved word in
some SQL backends).
- Vista support - allow registry key to be set to Local Machine or Current
User (was previously forced to Local Machine).
- LogFile name check (before opening) to check that the name has been set
when using a variable.
Version 1.92 - Released 16 July, 2006
- New property - MinButtonWidth, allows alternative presetable button width.
Version 1.91 - Released 6 June, 2006
- Tidy up Global Extension template.
Version 1.90 - Released 20 March, 2006
- Version numbers where out of sync - updated tpl, inc and doc numbers to be in sync.
Version 1.89 - Released December 8, 2005
- Feature - allow a customized date picture for the message entry's
datestamp in the log file.
Version 1.88 - Released July 18, 2005
- Fixed - Static settings (from template) incorrectly setup for Multi-DLL
Version 1.87 - Released April 18, 2005
- Enable Defaults parameter to be altered programatically in the Message
Version 1.86 - Released March 8, 2005
- Fixed (regression in 1.81) - returning correct value when NotAgain
property is used and the DontShowThisAgain checkbox is checked.
Version 1.85 - Released January 24, 2005
- Revamped examples.
- Copyright equate included.
- Fix for truncated string when last string is > 255.
Version 1.84 - Released November 8, 2004
- Fixed template Basic tab for Multi-DLL apps.
Version 1.83 - Released November 5, 2004
- Fixed template features tab in C55/C6
Version 1.82 - Released November 2, 2004
- Revamped the template for the new template look.
- New feature - GPF HotKey
Version 1.81 - Released October 5, 2004
NB for handcoders!!!! If you have handcoded your
Message window, then you need to take note of the following - specifically
the property changes.
- Translation settings for Multi-DLL applications.
- ButtonPressed property changed to contain the ID of the Button pressed.
- New property - ReturnValue property contains the value that the message
Version 1.80 - Released September 14, 2004
- MessageBox.txd file shipped for ease of importing the MessageBox logfile
into your txd.
- Force procedure names to default to those in the included txa.
- When Message logfile is selected, then the template fields will default to
their respective correct fields from the dictionary.
- When the MessageBox logfile is selected (to log messages to) the 'Override
Generate' file is checked to force the MessageBox dictionary file to be
Version 1.79 - Released September 2, 2004
- CloseNow extended to allow future message windows and other currently
- Timer forced on to handle CloseNow feature.
Version 1.78 - Released September 1, 2004
- New Method - CloseNow allows external closure of the Message window.
Version 1.77 - Released July 28, 2004
- Template fix - missing template variable (template bug introduced in 1.76)
Version 1.76 - Released July 23, 2004
- Class Fix - removed the STATIC attribute off some properties - causes
Clarion6.1 to moan.
- Template Change - add Project Define to contain Disable messageBox status.
- Some of the LogInit routine moved to the ThisWindow.Init (to enable proper
return from the ThisWindow.Init method)
- New property - TextYPos which allows you to set the Text to start lower
(in order to place controls above the Message Text)
- Corrected Tab counter.
Version 1.75 - Released November 17, 2003
- Template Fix - When selecting the 'Other' folder for storing the
DontShowAgain settings in the Windows Registry - the folder is set
- Template & Class Change - Allow you to set default icons for the
button equates (OK, Yes, No, etc)
Version 1.74 - Released October 2, 2003
- Template Change - Don't clear Procedure name settings when Multi-Dll
settings are changed.
- Template Change - Arranged global extension template real estate for ease
- Template Change - For Multi-DLL applications - default settings moved to
Data DLL. Set in one place (override-able at the EXE level).
- Template Change - Log record limit validation removed (it is simply
ignored for the native ASCII logfile).
- Template Change - include file included once.
- Template Change - Init called in DLL initialise (which means that for ABC
Multi-DLL applications the Global extension template only needs to be added
to the Data dll).
- Template Change - LimitLog only called if the LogFile is not the default
- Template Change - Embed points for all methods implemented (PutReg, GetReg,
Close, ActivateTimeOut were missing).
- Template & Object Change - New Properties (FromProcedure(ABC, Clarion
5.5 and above only) and FromEXE) indicate from where the message was called
(FromProcedure must be activated in the Message window's control template).
- Template Change - initialise properties moved to the Init method.
- Template Change - allows FromEXE and FromProcedure to be displayed in the
Message() titlebar (if required). Set in the MessageBox window control
- Template Change - FromProcedure removed to a property (from the Message()
window local generated variable).
- Object Change (PrimeLog) - writes the Procedure name (if exists) and the
EXE name to the logfile.
Version 1.73 - Released September 12, 2003
Version 1.72 - Released September 1, 2003
- Template & Object Change - Message Control Template allows buttons to
be made transparent independently from strings (which sets the TrnButtons
property if checked).
- Object Change - NotAgainID is cleared when the Message window is closed.
- Object Change - DontShowThisAgain checkbox is not made transparent (this
is not supported by manifest files in XP). If this checkbox must be
transparent, you can manually set it on the window (in the Checkbox's
Version 1.71 - Released July 18, 2003
- Template Fix - support for Multi-Proj multi-DLLs (compiler error for
- Template Change - support for new methods (necessary EMBED points).
Version 1.70 - Released July 11, 2003
- Object & template change - allows selection of storage method
for the DontShowThisAgain setting (in the
registry or in tthe INIFile). (see the Global Extension Template)
- Object & template change - allows you to determine whether you would
like || to appear as | or as two line breaks (see Global Extension Template
and the ShowRepeatBars property).
- Object change - allows DontShowThisAgain feature to be set
by ID (NotAgainID
property). This makes the use of variables with the DontShowThisAgain
feature much easier.
Version 1.6k - Released April 30, 2003
- Object change - stores DontShowThisAgain setting for each message in the
registry rather than in an INI File - new methods GetReg and PutReg to
obtain and place the values in the registry. New property - REgistryFolder
to contain the folder name in the registry where these values reside.
- Object Change - allows for | if || in the Message Text.
- Template update - support for UBeaut.
- Template fix - fixed INI Section disabling error.
- Template change - better compile error reporting.
- Template change - Made unique name for FromProcedureName (local variable
in the MessageBox window).
- Object Fix (SetControlProperties) - buttons enlarged.
Version 1.6i - Released January 20, 2003
Version 1.6h - Released December 11, 2002
Template Update - support for Clarion6
Template Fix - support for
GlobalError class procedure name continuation corrected.
Version 1.6g - Released November 5, 2002
Template Update - self.INIFile
is not set if 'Other' is selected and %DSAINIFileNam is blank.
Template Update -
LMBD:MessageText variable created and embed before PreOpen method is called,
allowing easy changing of message properties in the message window itself.
Version 1.6f - Released September 13, 2002
Object Update - alert EscKey and
AltF4 on the message() window.
Template Feature - caters for Multi-Proj support
Version 1.6e - Released July 25, 2002
Template Fix - Catered for new variable -
%AppTemplateFamily introduced in c5.5f.
Template Fix - Clears Message
Procedure ToDo when changing from single EXE to Multi-DLL.
Version 1.6d - Released June 24, 2002
Version 1.6c - Released June 20, 2002
Template Fix - GlobalErrors Proc name maintained correctly.
Template Change - jpg file relabelled (8.3 naming format) -
does not always display correctly
Version 1.6b - Released June 18, 2002
Object fix - bug in v1.6b omitting text changes in messages with no button parameter
passed (CreateButtons method changed).
Template change - aligned code to correct indentation.
Version 1.6 - Released May 10, 2002
Object Change - changes font (not just
fontname) for all controls (based on window font) (Open method changed)
Object Change - Adjusts window size based on font size
(CreateStrings method changed)
Object Change - sizes all buttons (not just buttons with
Object Change - size window according to size of controls, not approximation value
Object Change - Sets the size of the window according to the
fontsize with correction factor.
Object Change - Only opens the log file if required. (in SendClose method)
TPL Change - Only places a call to the Kill method in EXEs.
TPL & Object Change - removed proc attribute from the InsertLog method - invalid.
TPL Change - Removed call to the OpenLog & CloseLog methods from the TPL.
TPL fix - For multi-DLL applications that don't use the default log file, the log file is not used (previously writing to both)
Object fix - removed call to
openlog() method from the TakeEvent method. Duplicating the call to open the log file.
Version 1.56 - Released April 26, 2002
TPL Change - corrected the template generated error when calling the GetEmail method.
TPL Change - added checkbox to
override web URLs from being created as Email when the HyperLink feature is used.
Doc Updated - Indexed FAQs,
updated some out of date instructions, etc.
Version 1.55 - Released April 5, 2002
TPL Change - allows Disable of MessageBox without all the associated template code errors.
TPL Change - Placed closeLog code after Parent.call - ensures that the file is closed.
Version 1.54 - Released April 4, 2002
TPL Change - removed default for
ClarioNET and WebBuilder enabling in the global extension template (causing
unknown template variable errors).
Version 1.53 - Released March 25, 2002
Object & TPL Change -
detects when the ClarioNET Client is connected and adjusts the way the
strings are displayed accordingly.
Version 1.5 - Released March 6, 2002
Object Change - ensured the
removal of the <13,10> character set in ClarioNet applications.
Object and Template change - log
messages that are not displayed due to the DontShowThisAgain check box
having been checked previously.
Template Change - added default
icon (especially for ClarioNET windows) to the local
Updated docs for information
regarding the relationship with MessageBox and
Version 1.4 - Released January 4, 2002
Object Change - added alert key left and right to the message box. Switches
between buttons with the left and right keys (for message boxes with
Object Change - added another property to allow you to set the text for the
Object Change - created a new dimensioned property to contain the text of the buttons on the messagebox window.
Version 1.3 - Released December 19, 2001
Object & TPL Change - allows extra text in the default ASCII log file.
(PrimeLog & OpenLog changed)
Object Change - allows translation of the default ASCII log file's header.
TPL Change - allows the log File limit to be a variable.
TPL Change - updated the SetFeatures
template (allows latest features to be set).
Object Change - DontShowWindow can be static if required.
TPL & Object
Change - returns the Default button if MessageBox window is not displayed
(Previously returned a 1), unless DontShowThisAgain feature is activated, in
which case the button that was pressed when the check box was checked is
returned. Please read the DontShowThisAgain
feature section, paying particular note to the cautionary note.
Object & TPL Change - allows you to set the ini file and section where the DontShowThisAgain history is to be
stored (see the Global
Extension Template or the new
Object Change - logs Default button if MessageBox window is not displayed.
TPL Change - gives some object embed points in C4 (C4 does not allow template variables in embed points)
Object Bug Fix - prevents logfile tracker from going below 0 so that LogFile can open again.
Object Change - Allows the vertical bar(|) on buttons if repeated immediately in the
TPL & Object Change -
Increased the options for tracking the DontShowThisAgain feature. Allows you
to set your own INI File and the section where the entries are to be stored.
Version 1.2 - Released November 27,2001
Doc Change - FAQs updated for Font color bug (In Clarion).
Object Change - Does not clear ShowTimeOut property when TimeOut property is not set. This allows TimeOut prompt display throughout entire application without resetting the ShowTimeOut property.
Object Change - Caters for messages with paragraphs of longer than 255 characters.
Template Change - Removed Font color from Template Utility windows.
Version 1.11 - Released November 7, 2001
Template change - caters for omitted parameters (caused occasional GPFs on some operating systems)
Template change - Logs messages after window is opened to
eliminate time delay of file-opening.
Template change - auto-populate log fields.
Object Change - caters for buttons with longer text.
Object Change - caters for &ersand character in Message text
Version 1.1 - Released October 29, 2001
Object Change - Allows for
Object Change - Fixed the way <13,10> is handled. Eliminates the second <10> introduced.
Doc Change - Explained compile errors introduced in 1.1 if control template not deleted and re-populated.
Template Change - Check for above error and explain solution when compile error is generated.
NB: If you are an existing user, you must delete
your old MessageBox Control Template and add the new MessageBox
Control Template to your MessageBox window. If not you will get a compile
error: Unknown identifier: ?HALINK.
Version 1.03 - Released September 6, 2001.
Template Change - Fixed compile problem for the rootDLL of a Multi-DLL legacy app.
Object Change - Fixed timer problem on the message box with other 3rdParty products.
Object Change - interface with HyperActive for a hyperlink on the MessageBox.
Template Change - Allows emailing of messaging info.
Object Change - Allow temporary log off (i.e. disable logging for one message).
Template Change - Fixed template bug when using Standard MessageBox class.
Template & Object Change - New property set when message is opened. Skips a second call to the
MessageBox while the MessageBox is open.
Version 1.01 - Released August 17, 2001.
Template Change - Fixed NotAgain problem. If the NotAgain check box checked, then the next time that message was (not) 'shown', then the proceeding message would have the NotAgain check box on it.
Object Change - Fixed Default
Object Change - Permits text
with square brackets on buttons, as well as supporting button icons.
Doc Change - ini file is
CSMesBox.ini, not MessageBox.ini, FAQ updated.
Object Change - supports
MessageBox texts with <13,10> instead of the | character.
Version 1.0 Gold - Released August 10, 2001.
Version 1.0 beta 4a - Released July 26, 2001.
Template Fix - Fixed Multi-DLL option setting. You can now set options in the EXE Global Template.
Template Fix - Fixed Language File usage in Stop and Halt templates. Now uses TranslationFile property instead of the name in the template.
Object Fix - Fixed minimum
window width setting when the TimeOut prompt is shown.
Object Fix - Fixed translation
issue of logging Timer when window times out. Previously it was not logging
the translation of 'Timer'.
Version 1.0 beta 4 - Released July 6, 2001.
TPL & Object Change - allows
selective message display, while logging all messages (see the DontShowWindow
Version 1.0 beta 3 - Released June 22, 2001.
NB: If you are an existing user, you must delete
your old MessageBox Control Template and add the new MessageBox
Control Template to your MessageBox window
Object Change - work around for
bug in Clarion5.5D - wouldn't allow prompt re-sizing (only 1 line was
appearing in the MessageBox).
TPL and Object Change -
Procedure name maintaining.
Version 1.0 beta 2 - Released June 4, 2001.
Docs Updated - FAQ
TPL change - Allows Parameters in the prototype string, but has error checks to ensure correct parameters.
Object Change - Heading char set to <160> if no heading text. Enforces blank title bar.
Object & TPL Change - Prompt control on the message window instead of creating strings.
Object & TPL Change - Icon control on the message window instead of creating the icon (unhidden when required).
Object Change - Min window size when DontShowThisAgain check box is used set to check +
(Buttonspace * 2).
Object & TPL Change - Change TimeOut counter to a string in the Control Template (used to be created).
TPL Change - Message Box
Controls positioned in relative positions; more legible.