Version History
Download latest version
here
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 
	specified.
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 
	class
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 
	setting).
- 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 
	logfile).
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 
	FAQ4.9).
- 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 
	methods.
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 
	prompt text.
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 
	Message Class.
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 
	change. 
- Init method UseABCClasses parameter is superfluous 
	(not required).
- 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 
	threaded class. 
- 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 
	DontShowAgain messages.
- New construct and destruct methods (for C6).
- Default logfile is now threaded (including the 
	logfile's filename).
Version 1.98 - Released 3 September, 2007
  - Fix LimitLog derived method - SQL compliant (not get first record by 
	pointer).
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 
	logfile).
- 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
    ABC apps.
Version 1.87 - Released April 18, 2005
  - Enable Defaults parameter to be altered programatically in the Message
    window.
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
    window returns.
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
    generated.
Version 1.79 - Released September 2, 2004
  - CloseNow extended to allow future message windows and other currently
    existing open.
- 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
    correctly.
- 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
    of use.
- 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
    ASCII file.
- 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.
- 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 
  - 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
    control properties).
Version 1.72 - Released September 1, 2003
  - Template Fix - support for Multi-Proj multi-DLLs (compiler error for
    non-data DLLs).
- Template Change - support for new methods (necessary EMBED points).
Version 1.71 - Released July 18, 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.70 - Released July 11, 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.
Version 1.6k - Released April 30, 2003
  - 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 
  - 
    Template Update - support for Clarion6
- 
    Template Fix - support for
    GlobalError class procedure name continuation corrected.
Version 1.6h - Released December 11, 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.6g - Released November 5, 2002
  - 
    Object Update - alert EscKey and
    AltF4 on the message() window.
- 
    Template Feature - caters for Multi-Proj support
Version 1.6f - Released September 13, 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.6e - Released July 25, 2002
  - 
    Template Fix - GlobalErrors Proc name maintained correctly.
- 
    Template Change - jpg file relabelled (8.3 naming format) -
    does not always display correctly
Version 1.6d - Released June 24, 2002 
Version 1.6c - Released June 20, 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.6b - Released June 18, 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
    user-overriden text)
- 
    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.6 - Released May 10, 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.56 - Released April 26, 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.55 - Released April 5, 2002
  - 
    TPL Change - removed default for
    ClarioNET and WebBuilder enabling in the global extension template (causing
    unknown template variable errors).
Version 1.54 - Released April 4, 2002
  - 
    Object & TPL Change -
    detects when the ClarioNET Client is connected and adjusts the way the
    strings are displayed accordingly.
Version 1.53 - Released March 25, 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
    extension template.
- 
    Updated docs for information
    regarding the relationship with MessageBox and 
	other
    3rdparty products.
Version 1.5 - Released March 6, 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
    multiple buttons).
- 
    Object Change - added another  property to allow you to set the text for the
     DontShowThisAgain checkbox.
- 
    Object Change - created a new  dimensioned property to contain the text of the buttons on the messagebox window.
Version 1.4 - Released January 4, 2002
  - 
    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 property)
- 
    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
    ButtonText.
- 
    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.3 - Released December 19, 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.2 - Released November 27,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.11 - Released November 7, 2001
  - 
    Object Change - Allows for
    <9>tab character.
- 
    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.
Version 1.1 - Released October 29, 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. If not you will get a compile
error: Unknown identifier: ?HALINK.
  - 
    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.03 - Released September 6, 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
    button problem. 
- 
    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.01 - Released August 17, 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 Gold - Released August 10, 2001. 
Version 1.0 beta 4a - Released July 26, 2001.
  - 
    TPL & Object Change - allows
    selective message display, while logging all messages (see the DontShowWindow
    Property).
Version 1.0 beta 4 - Released July 6, 2001.
  - 
    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 -
    introduce ErrorClass
    Procedure name maintaining.
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.
  - 
    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.
Version 1.0 beta 2 - Released June 4, 2001.