Date: 01-21-2007 Subject: PATCH RELEASE 9.2B Runtime Files These release notes pertain to the following programs or files: DBGIFACE.PLC 9.2B 21 Jan 2008 DESIGNER.PLC 9.2B 21 Jan 2008 EDITOR.PLC 9.2B 21 Jan 2008 ODSBAC32.DLL 9.2B 21 Jan 2008 PLBCLICON 9.2B 21 Jan 2008 9,2,2,500 PLBCLIENT 9.2B 21 Jan 2008 9,2,2,500 PLBCLINET 9.2B 21 Jan 2008 9,2,2,500 PLBCMP 9.2B 21 Jan 2008 PLBCON 9.2B 21 Jan 2008 9,2,2,500 PLBDBUG 9.2B 21 Jan 2008 PLBDSIGN 9.2B 21 Jan 2008 9,2,2,500 PLBEQU.INC 9.2B 21 Jan 2008 PLBNET 9.2B 21 Jan 2008 9,2,2,500 PLBSERVE 9.2B 21 Jan 2008 9,2,2,500 PLBWIN 9.2B 21 Jan 2008 9,2,2,500 PROFILER.PLC 9.2B 21 Jan 2008 SA_DLL32.DLL 9.2B 21 Jan 2008 9,2,2,500 SUNIDE.PLC 9.2B 21 Jan 2008 SUNINDEX 9.2B 21 Jan 2008 9,2,2,500 WATCH.PLC 9.2B 21 Jan 2008 *============================================================================== The following files have been changed as follows: ------------------------------------------------------------------------------- PLBSERVE - Modified the '-d3' debugging to log the following keywords when they are specified in the PLBSERVE INI and the keywords settings are being sent to the PLBCLIENT. PLBWIN_PRTPREV PLB_PRTTIME PLB_PRTRETRY PLB_PRTDEBUG PLBWIN_SYSPORT PLBWIN_ICON PLBWIN_DOSCOLORS PLBWIN_RTL PLBWIN_FBOLD PLBWIN_FSIZE PLBWIN_FONT PLBCE_TASKBAR PLBWIN_NOHELP PLBWIN_FILE PLBWIN_EDIT PLBWIN_HELP PLBWIN_DOSFONT - Corrected a problem for the Windows version of PLBSERVE that is processed based to return the Process ID for the GETMODE *TASKID keyword. - Corrected a problem where Admin data was not cleaned up when a client workstation logged off or shutdown while the PLBCLIENT was executing. This problem was causing extraneous data to show up in the WATCH utility after the PL/B program terminated. - Corrected a problem where Admin data was not cleaned up when a PL/B program was terminated by a GPF error. This problem was causing extraneous data to show up in the WATCH program after the PL/B program terminated. - Corrected a problem where GETMODE *MAXUSERS was always returning a zero value under PLBSERVE. ------------------------------------------------------------------------------- PLBCLICON - Corrected a GPF error that would occur when the screen definition window size was larger than the current console window that is being used. ------------------------------------------------------------------------------- PLBCLIENT, PLBCLICON, PLBCLINET - Corrected a problem for the SaveXmlFile method of a LISTVIEW object where the xml file was not being created when the FILENAME parameter total length was larger than 36 characters and the xml file was being created on the PLBSERVE server. ------------------------------------------------------------------------------- PLBWIN, PLBNET - Modified the '-d3' debugging to log the following keywords when they are specified in the runtime INI. PLBWIN_ICON PLBWIN_DOSCOLORS PLBWIN_RTL PLBWIN_FBOLD PLBWIN_FSIZE PLBWIN_FONT PLBWIN_DOSFONT ------------------------------------------------------------------------------- PLBWIN, PLBNET, PLB(UNIX) - Modified the '-e' runtime option to give specialized Licensed User Count data in condensed form as follows: Note: For the PLBWIN and PLBNET runtimes, the '-e[x]' option data is only accessible using redirected command line output to a data file using "plbwin -e3 > xxx.txt". '-e0' The current authorized user license count is given. Example of output for command 'plb -e0': 64 User License! '-e1' The current user-client count in use. Example of output for command 'plb -e1': 2 User-clients used! '-e2' The current user-client count available for use. Example of output for command 'plb -e2': 62 User-clients available! '-e3' The current summary of all user license counters. Example of output for command 'plb -e3': 64 User License!, 2 User-clients used!, 62 User-clients available! ------------------------------------------------------------------------------- PLBWIN, PLBNET, PLBSERVE, PLB(UNIX) - Modified the runtime enqueue locking for an IFILE READ, READKS, and READKP instruction not under a FILEPI to allow shared locks. All other locking for these instructions are implemented as exclusive locks. When an exclusive lock is used, then all processes must wait to gain access to the lock, one process at a time. However, if there are NO exclusive locks pending or active, then a shared lock can allow multiple processes to gain control of the shared lock at the same time. Therefore, when multiple PL/B programs are attempting to read an IFILE without any exclusive locks pending or active, then the performance of the PL/B program can improve since there is no blocking by the OS for a shared lock. - Modified the WRITE IFILE to not process the ISI deleted data record number list when the IFILE has been opened with the WEOF specified to write all records at the end of the data file. - Modified the PLB_PREP87 keyword to accept decimal values in addition to the ON or OFF. The new syntax format is 'PLB_PREP87={ON|OFF|value}'. When the {value} format is used, then the following operations are implemented. {value} Comment 0 Set the PLB_PREP87 state to OFF >0 Set the PLB_PREP87 state to ON 2 Set the PLB_PREP87 state to ON and there is no ISI data integrity checking. - Modified the SETMODE *PREP87 keyword to accept a new state value that can be used to support 8.7 file formats and the runtime does not perform any ISI data integrity checking. The acceptable values for the 'SETMODE *PREP87={value}' is defined as follows: {value} Comment 0 Set the PLB_PREP87 state to OFF >0 Set the PLB_PREP87 state to ON 2 Set the PLB_PREP87 state to ON and there is no ISI data integrity checking. - Modified the runtime to use the new PLB_PREP87 state value of 2 to turn on the 8.7 file format support without performing any ISI data integrity checking. This change corrects a problem where I37 errors were occurring when ISI files from 8.6x runtimes were being used. - Modified the runtimes to apply a maximum time of 3600 sec (1 hour) when receiving any one message from the Data Manager. This change is being made to prevent the runtime from waiting for an infinite amount of time for specific message that could cause the client to hang for an indefinite amount of time to receive a message from the Data Manager. In addition, a new runtime keyword has been added named 'PLB_MAXDMRECVTIME'. The 'PLB_MAXDMRECVTIME={seconds}' keyword can be added to the client INI file to specify the maximum time to wait for any one message from the Data Manager. The {seconds} value must be 0 or 300 to 3600 inclusive. A value of zero means that the default runtime value to be used. The default value runtime value is 3600 seconds. Any value between 1 and 299 is reset to the minimum of 300 seconds. Any value greater than 3600 is reset to the maximum of 3600. Also, a new keyword named '*MAXDMRECVTIME={dnumnvar}' has been added to the GETMODE/SETMODE instructions. The '*MAXDMRECVTIME' allows a client program to set the PLB_MAXCMRECVTIME settings under program control. The same value limitations are applied to the '*MAXDMRECVTIME' keyword. - Added a new bit control named XFILE_WRTISO8859 for the MODE= bit definitions of the OPEN/PREP instructions using a XFILE. When the XFILE_WRTISO8859 is used, the encoding for the XFILE is set for ISO8859 and this allows 8-bit character values in the XML file. XFILE_WRTISO8859 0x0200 - Added a new bit control for the *Options of a LISTVIEW object named $LV_XMLWR_ISO8859. This bit definition allows the ISO8859 mode to be used for the LOADXMLFILE and SAVEXMLFILE methods of the LISTVIEW. $LV_XMLWR_ISO8859 0x100 - Added a new bit control for the *Options of a TREEVIEW object named $TV_XMLWR_ISO8859. This bit definition allows the ISO8859 mode to be used for the LOADXMLFILE and SAVEXMLFILE methods of the TREEVIEW. $TV_XMLWR_ISO8859 0x08 - Added a new keyword for the runtimes named 'PLB_GLOBALSIZE={size}'. The {size} for this keyword allows the default Global Memory size to be specified in the runtime INI file. The {size} memory size must be a decimal number with a value greater than 4096. If the {size} value is less than 4096, the default Global Memory size of 65536 is used. - Corrected a problem where the TRANSACTION START and ROLLBACK instructions could cause a buffer overflow. This buffer overflow problem might cause a GPF error to occur. - Corrected a problem where a S11 error would occur when the SPLOPEN "NUL:" instruction was executed. This problem started with the 9.1 release when Datapoint file name support was added to SPLOPEN. - Corrected a problem for a GETFILE XFILE where the data for the XMLDATA keyword was being corrupted when the PLB_OEM keyword was being used. - Corrected a problem where unnecessary operating system open functions were being executed when INI files did not exist for a runtime to use. - Corrected a problem where an I83 subcode 216 error would occur for an OPEN XFILE operation when the xml data file had a file size of 364. ------------------------------------------------------------------------------- PLBWIN, PLBSERVE - Corrected a problem where the OPEN and PREP instructions for a FILE variable were not updating the ADMIN data when a previously opened file was implicitly closed. This runtime problem was causing the WATCH utility to report more opened files for a program than were really opened. ------------------------------------------------------------------------------- PLBWIN, PLBNET, PLBSERVE, ALL GUI CLIENTS - The keyword PLB_OEM for the runtimes is replaced by a new keyword named PLB_ANSI_OEM. All of the options and descriptions for the new PLB_ANSI_OEM keyword is the same as for old PLB_OEM keyword. WARNING: 1. The old PLB_OEM keyword is not working as currently documented and the ANSI/OEM conversions are not occurring as expected. Since we have not had any users reporting any problems for the old PLB_OEM, we are NOT correcting the problems for the old PLB_OEM keyword to avoid possible unexpected data changes for our current users. The new PLB_ANSI_OEM corrects the conversion problems that existed for the old PLB_OEM keyword. Use of the PLB_ANSI_OEM keyword by an end-user will insure an awareness by the end-user as to the corrected data conversions. This, hopefully can avoid unexpected data conversion problems by an end-user's application. 2. When using the Application server, the PLB_ANSI_OEM data conversions can ONLY occur when a 9.2B or later of PLBSERVE and the clients ( Plbclient, Plclicon, or Plbclinet ) are used. 3. When the PLBSERVE Application Server is using the PLB_ANSI_OEM that requires ANSI/OEM conversions, then the PLBCLIENT version MUST be a version of 9.2B or later. If an older PLBCLIENT tries to log onto this PLBSERVE, then a new untrappable error U56 occurs. This new U56 error is required because all data conversions are performed by the logic in the PLBCLIENT clients. ------------------------------------------------------------------------------- PLBWIN, PLBNET, ALL GUI CLIENTS - Modified the TOPMOST property FOR the WINDOW object to accept three state values as 0, 1, AND 2. The three state values are defined as follows: VALUE Behavior 0 (Off) - The TOPMOST property is turned off. 1 (Application) - The PLB WINDOW does NOT remain on top of non-PLB windows WHEN a PLB application becomes inactive. However, the PLB WINDOW remains as the top WINDOW to other PLB windows when the PLB application becomes active. 2 (Global) - The PLB WINDOW remains on top of all windows when a PLB application becomes inactive. - Modified the HSCROLL/VSCROLL events to dispatch immediately when these events are registered as fast events. This corrects a problem where some expected user application actions were not detected until after a scrolling action. - Modified the COMBOBOX object to use the SETMODE *EDITFOCUSBGCOLOR keyword color setting to automatically set the background color for the COMBOBOX when the object gains or loses focus. - Corrected a problem where the BGCOLOR property for the RICHEDITTEXT OBJECT did not take affect when used in a CREATE instruction. - Modified the date mask for the SORTCOLUMN method to be case insensitive. This means that a date mask of 'yyyymmdd', 'YYYYMMDD', or any other combination of these characters is allowed. - Modified the RICHEDITTEXT OBJECT to support the *EDITFOCUSBGCOLOR program control. - Modified the LISTGET instruction to give an O162 error if the destination variable is not a TYPELESS or OBJECT PL/B data variable type. This change is being made to prevent any possible GPF errors. - Corrected a problem where the HScroll/VScroll fast events were being delayed. - The implementation for the Windows OS .manifest files can be used to change the visual appearance of GUI objects to an XP flat-style. The .manifest file data is formatted as an XML document. One usage of a .manifest file is to allow older Windows programs to have the look of a newer Windows program without having to recompile a program. For the Sunbelt runtimes, a .manifest file can be used to change the standard look of the GUI objects to appear with the Windows XP flat-style. To allow an external .manifest file to change the runtime style, the .manifest file name format must be set to 'runname.exe.manifest' and this specially named file must be put into the same directory as the runtime. The use of an external .manifest as described in this paragraph can be used under Windows XP and some earlier OS versions. In this case, the external .manifest is used in place of a embedded manifest data in a runtime executable. Some Windows Vista configurations do not recognize an external .manifest file. In these cases, the manifest must be embedded into the executable using Microsoft's manifest tool ( mt.exe ) which is part of the latest Windows Platform SDK ( or Visual Studio 2003 or later ). The sdk can be downloaded from Microsoft's web site ( msdn.microsoft.com ). Please be aware that when using a manifest to enable the common controls 6 styles ( themes ), Microsoft documents that the behavior of some objects may change and that programs should be tested and appropriate modifications be made to them to compensate for the differences. The following command line is an example to embed a manifest file into an executable using version 5.2.3790.2075 of the Windows command 'mt.exe'. Example command to embed a manifest file: "mt.exe –manifest c:\sunbelt\plbwin.92\code\plbwin.exe.manifest –outputresource:c:\sunbelt\plbwin.92\code\plbwin.exe;1" The following manifest file has the component definitions such that it can be used with the PLBNET, PLBWIN, PLBCLIENT, and PLBCLINET without having to be modified: - Corrected a problem where the CREATE for a TIMER object was not setting the OBJECTID property. - Corrected a problem where the CREATE instruction for the STATUSBAR object was not using the user specified BGCOLOR and FGCOLOR properties. ------------------------------------------------------------------------------- PLBNET - The events for .NET objects including NETOBJECT and NETCONTROL have been implemented using the EVENTREGISTER instruction. Notes for the .NET object events are described as follows: 1. The object events are handled by EventRegister. 2. The .NET object events are specified by name and not by number. 3. Internal events using EVENTSEND are still specified using event numbers defined by the end user application. 4. The optional {keyword} operands for the EVENTREGISTER of a .NET object are described as follows: Keyword Use the .NET objects ARG1 NETOBJECT that receives a reference to the instance of the class that caused the event. The ARG1 NETOBJECT can be used to get or set properties as needed. ARG2 NETOBJECT that receives a reference to the event data for the ARG1 NETOBJECT. The ARG2 NETOBJECT can be used to get specific event data is as described by the .NET eventhandler for the ARG1 NETOBJECT class. OBJECTID Retrieves the object identification number for the .NET object. ARGxx All other ARGxx keywords contain no data for the .NET object. CHAR This keyword is not used by the .NET object. MODIFIER This keyword is not used by the .NET object. RESULT This keyword is not used by the .NET object. TYPE This keyword is not used by the .NET object. FASTEVENT Dispatches an event for a .NET object immediately. - Corrected a problem where a SETPROP/GETPROP CAUSEVALID using a GENERIC object referencing a NETCONTROL object would give an O123 error. ------------------------------------------------------------------------------- PLBNET, PLBCLINET - Modified the NETOBJECT to allow the ASSEMBLY name to contain a fully qualified path and assembly name. Also, note that when a 3rd party assembly is being used without a fully qualified path, the assembly must be placed either in the same directory where the PLBNET.EXE module exists or the assembly must be installed into the Global Assembly Cache (GAC). - Added a new PL/B data object named NETCONTROL. The NETCONTROL object is a .NET object that is visible and it can exist on a PL/B WINDOW or PANEL object. This creation and use of a NETCONTROL is the same as the NETOBJECT when used. ------------------------------------------------------------------------------- PLBCMP - Modified the compiler to accept input extension sizes longer than 4 characters. - Modified the compiler to support the NETCONTROl object. - Modified the GETMODE/SETMODE to support the '*MAXDMRECVTIME={dnumnvar}' keyword. - Modified the ZR option for the compiler to accept a string that contains user defined comment delimiter characters. The delimiter characters in the ZR string MUST BE separated by a blank character. A compiler error occurs if the ZR string format is invalid. Example of ZR option: plbcon plbcmp prog -ZR="//" plbcon plbcmp prog -ZR="// ; . +" plbcon plbcmp prog -ZR="//;." ;Compiler Error! - Corrected a problem where the compiler was giving an unepected error when a compound method index syntax was used. This problem was caused by changes made in the 9.2A patch release. Example of Problem: Auto AUTOMATION ... Auto.tasks.ADD USING *Name="Task001" - Corrected a problem where the compiler was giving an unexplained error when a program was compiled with the '-s' option and there were more than 100 expressions used in a program. - Corrected a problem where a READ/WRITE instruction for an XFILE was not resolving DEFINE references. Example of Problem: USEDEF DEFINE "TABLEID=VAR" . X XFILE SEQ FORM "-1" VAR DIM 20 ... WRITE X,SEQ;USEDEF - Corrected a problem where a CONST value larger than 65535 was being truncated when the CONST was used as an equated value. The truncation in this case was causing unexpected results that would cause a program to execute in an indeterminate manner. A change was made to the compiler to allow an equated value for the CONST to be in the range of 0 to 4294967295 (0xFFFFFFFF). If a user specifies a CONST value larger than the maximum allowed, then a warning is given. In that case, the CONST can still be used for any PL/B instructions where a FORM variable syntax form is allowed. - Corrected a problem where use of multiple expressions within the single CREATE or SETPROP instruction would cause invalid results when a program was executed. Example of Problem: HVAR FORM "10" WVAR FORM "20" . CTL BUTTON . ... SETPROP CTL, *HEIGHT=(HVAR+1), *WIDTH=(WVAR+5) - Corrected a problem where a compilation error would occur when the ZR option was used and a PL/B source line had trailing blank characters. ------------------------------------------------------------------------------- PLBDBUG - Corrected a problem where the character debugger was preventing debugging under the GUI debugger while a MODAL dialog was active. ------------------------------------------------------------------------------- PLBDSIGN - Modified the designer to allow the TOPMOST property of a WINDOW object to select three states as follows: VALUE Comment 0 Off 1 Application 2 Global See description of runtime changes above. - Corrected a problem where the designer was allowing binary zeros to be stored into the PLF source when the &OBJNAME macro was at the end of the source for an event. Example of a click event of a BUTTON that would store a binary zero: Click_Form001Button001 CALL XYZ USING &OBJNAME - Corrected a problem where the BGCOLOR and FGCOLOR properties for the STATUSBAR object was not being reset to the saved colors that existed in a PLF form when it was loaded. ------------------------------------------------------------------------------- SUNINDEX - Modified SUNINDEX to not write the delete data record number list to the ISI when the ISI is create with the weof mode being used. The weof mode is used for the ISI when the 's', 'v', or 'w' sunindex options are used. ------------------------------------------------------------------------------- PLBEQU.INC - Updated the description for the TOPMOST property changes. - Added $TICKNONE equate for the TICKSTYLE property of a SLIDER object. ------------------------------------------------------------------------------- ODSBAC32.DLL - Modified the schema processing to use a default value of zero for the restriction level of a table column type of SQL_DATE, SQL_TIMESTAMP, or SQL_TIME. This change helps with issues where a SQL query could take a long time to execute when one of these SQL types were used in a SQL expression. - Added a new keyword named 'POSTORDER={on|off}' to the [debug] section. This keyword forces all 'ORDER BY' clause operations to be executed on a resulting set of records. If this keyword is not used or it is not set to 'ON', then the default processing for the 'ORDER BY' is to pre-sort the tables for the columns specified in the 'ORDER BY'. When this keyword is set to 'ON', then the 'ORDER BY' processing occurs on the resulting records retrieved by the WHERE clause. ------------------------------------------------------------------------------- SA_DLL32.DLL - The shared lock changes described for the PL/B runtimes has been implemented for Sunaccess. ------------------------------------------------------------------------------- SUNIDE.PLC - Modify Close All Files sequence to resolve timing issue with fast computers that could leave the IDE in an indeterminate state. - Modified internal processing to keep the project file sorted in memory so programs are built in the same order they appear in the Source Map. - Modified "New File" menu/toolbar to be able to create from scratch a new PLF form using the new designer when PLF options are not set to use external editor. - Optimized "Remove program" and post-build processing to improve performance when working with sources over a network. - Corrected a problem where the last Project INI file keyword was being ignored by the IDE. If the last keyword was PLBCMP_PRT= and the specified path was not in the PLB_PATH, the IDE may not have found .lst files. - Modified list file processing to always use cross reference if available even if full source list. - Changed the Source map icon from the X to a Red stop icon for files that are not found. - Fixed a 9.2A feature that broke the record and object method auto complete feature. - Fixed up problems with Datapoint and $Macro style file names where files may not be found by the IDE. - Fixed a problem where compiling and running programs would not work if the configured runtime was in an obscure path. This included a path containing parenthesis or if the fully qualified path was quoted. Example: "C:\Program Files(x86)\Sunbelt\Plbwin.92\code\plbwin.exe" ------------------------------------------------------------------------------- PROFILER.PLC - Modified treeview selection highlighting using both a graphic and bold font. - Modified Top 10 slow instruction to not show empty entries. ------------------------------------------------------------------------------- EDITOR.PLC - Corrected an O148 problem that could occur if a non-character keystroke (like a hot key ) occurred when the cursor scrolled off the top of the screen. - Added use of KEYHH HtmlHelp viewer if available on the workstation as it adds features missing from hh.exe. (KeyHH is a free htmlhelp launcher from keyworks software) - Corrected a bug where the highlighted line color setting was not being saved. ------------------------------------------------------------------------------- DBGIFACE.PLC - Corrected double click on dim problem where the contents shown may incorrectly contain trailing "@". - Corrected .chm help file support. - Corrected an O105 error that could occur when opening help files from the debugger. - Corrected problem with highlighted line not tracking the source when using the step command (F8). - Corrected a bug in the Call Stack dialog where it would not scroll the code to the selected line in the call stack. - Added scanning optimizations to speed the process of finding the address selected from the call stack window. - Modified startup to use the editors color scheme. ------------------------------------------------------------------------------- DESIGNER.PLC - Added TabControl panel generator and editor. - Added support for ActiveX objects. - Added support for .Net objects. (Must be using .Net version of PL/B.) - Added support for the TabID property for Statusbars. - Corrected collection of keyboard object sizing undo data. - Now updates size and position displays while drawing. - Corrected bug with displaying of the code window auto hide setting. - Modified the AddUndo logic to only output real changes in property settings and to correctly handle changing of font attributes. - Corrected issues with undo/repeat setproperty action for a form. - Updates the quick help information when a property is selected using the arrow keys. - Initialize the modified property color Listview when no ini file is present. - Initialize the AutoRedraw value in the extension record to True. - Paste now obeys the AlignToGrid option. - Corrected setting of the dirty flag (editor update required). - Corrected saving of the first code line when it is a comment. - Added vertical scroll bar to dynamic list property edit text. - Now deletes a single trailing line feed during dynamic list property editing. - Corrected toggling of the dynamic list property edit window using the dropdown button. - Corrected determination of backup directory location. - Now creates a unique label that includes the form name for the designer generated load event. - Corrected linking of designer generated code. - Modified AlignToGrid logic to use the form's actual grid properties and not the ini default values. - Modified the sizing and moving function to first correct to the grid before moving or sizing in grid units. - Corrected issue with setting a dynamic list property's value to a null string. - Modified object movement routines to first snap the selected object to the grid (i.e., a partial move perhaps) if align to grid is active. - Modified backup file numbering logic to detect a broken sequence and not move unnecessary files. - Added align to grid logic when configured and an object is created using the double-click method. - Changed the Init event to FormInit as documented. - Removed new form, open form, new report, and open report from the undo stack processing. - Paste now uses the original object name unless it is already in use. - Corrected Undo/Repeat/Replay of special edit items. - Added Hide All Panels on Open to options behavior page. - Added an Apply button to the options page. - Force code window to the foreground upon double click of an object or the design window. - Disallow moving of panels when bound to a tab control. - Corrected issues with deleting tab control panels and their objects. - Now disables the ToolBar during renumbering. - The selected object may now be changed in the object tree by using the keyboard. - Pressing a key while the design window active will now initiate an edit for the currently selected property. - Modified code processing logic to ensure that any preceding or succeeding source lines are output correctly. - Corrected display of tab characters in menu text. - Corrected handling of a click on the Designer node of the object tree. - The control keys are now properly updated after a load in the special Menu, Listview, Toolbar, and Statusbar editors. - Changing the SizeGrip property now forces recreation of the Statusbar. - Corrected TabID renumbering issues with ToolBars and Statusbars. - Now allows objects to be moved off the screen. - Corrected assignment if initial TabID and ZOrders for Toolbars and Statusbars. - Fixed handling of the ShowUpDown property for EditDateTime objects. - Corrected issues regarding object arrays. - Corrected handling of relative path specifications on the command line. -------------------------------------------------------------------------------