APL+Win Version 7.2
Introducing APL+Win Version 7.2. Visionary yet practical, the single comprehensive development tool for creating the next generation of applications has arrived. Developers can use APL+Win to create powerful applications quickly and effectively.
APL+Win has been continuously developed and advanced for over 30 years, making it the most robust and reliable development environment available. It provides a stand alone application development environment and with APLNext WebServices, integration with the Web browser and Web services.
The APL2000 Subscription Program is designed to help customers to successfully develop, deploy, and manage systems built around a broad range of high-quality APL2000 solutions for the server and the desktop. This program provides a comprehensive, annual service contract that covers all APL2000 products at use within the customers enterprise. It also provides a managed support relationship for customers who have made a significant investment in APL2000 technologies. Pricing varies by subscription level.
What's New in APL+Win 7.2
APL+Win 7.2 represents the continuing support by APL2000 for the APL application development language on the Microsoft Windows operating system platform.
- Localization level specific referencing
- New "APL2000 Home Page" option in the Help menu
- The CodeWalker Pause menu and Toolbar button are active during function execution
- New error message when editing
NA
system function - Major overhaul and refactoring of how tooltips work in APL GUI objects
- New sessions property (System Object)
- New CloseDoc and OpenDoc methods (Printer Object)
- New FormatMessage method (System Object)
- New error property (Printer Object)
- APL Grid printing enhanced
- Select multiple rows and column headers with the mouse
- The onXEditCancel and onXEditComplete events fire for combo cell in the APL Grid
- The XPrintMetrics method accepts a list of page numbers in the APL Grid
- The maximum number of columns in APL Grid increased to 2147483647
- New XEnsureVisible method (APL Grid)
- EnsureVisible option added to xActiveCell property (APL Grid)
- New xDragCell property (APL Grid)
- Bug Fixes
Localization level specific referencing
A number of system functions were enhanced to provide the ability to reference functions and variables at specified
localization levels. This is particularly useful for writing utility functions such as UCMDs. Such utility functions can
now see globals (or values at other localization levels between local and global). This means such functions no longer have
to play tricks with special names (such as
prefixed names) to attempt to avoid shadowing issues. They can
now just reach out and access shadowed values directly.
As a result of this change, an optional numeric left argument that specifies the scope at which names are interpreted was added to the following system functions:
NL
IDLIST
NC
VR
CR
CRL
CRLPC
In addition, there is a new system function: VGET
. This system function is used to access variable values at
local or global scope. VGET
allows you to peek at variable values around the edge of localizations.
New "APL2000 Home Page" option in the Help menu
The "APL2000 Home Page" option when clicked launches your Internet browser to the APL2000 web site.
The CodeWalker Pause menu and Toolbar button are now active during function execution
The CodeWalker Pause menu and toolbar button are now always available (not just when the CodeWalker window is open) during function execution. The Ctrl+Shift+Break keyboard shortcut key has also been added to the CodeWalker Pause menu.
New error message when editing NA
system function
When editing a NA
system function, the new error message reported is Cannot edit associated function instead of
Cannot edit locked function.
Major overhaul and refactoring of how tooltips work in APL GUI objects
This release has a major overhaul and refactoring of how tooltips work in APL GUI objects. The following bugs were fixed and features added:
- Fixed bugs in Status, Selector, Page, and CommandBar where tooltipstyle settings were not taking effect.
- Fixed bugs in various classes that allow multiple tooltips to be displayed at the same time (in the Tree and Listview controls).
- Fixed bugs that can cause balloon style tooltips to "bounce" on and off and on again when you enter a window.
- Removed tooltips on keyboard activity until mouse moved again.
- The tooltipstyle property can now be changed after windows are open. It reasserts itself to them automatically. Furthermore, you can now set this property on any window or system object. This allows you to have different style tooltips on different windows.
- The tooltipenabled property can now be set on any window or system object
- New onGetInfoTip event for Listview control to request enhanced tooltip info for items.
- New infotipmask property for Listview control to control which places info tips are fired. This is the same as the "where" codes for the onGetInfoTip event for the Listview control.
- New per item "info tips" for Tree control so that tooltips can be displayed for individual items similar to how this works in the Listview control.
- New style 64 for Tree control (noinfotips) to allow suppressing of info tips.
- New onGetInfoTip event for Tree control to request tooltip info for items.
- New infotipmask property for Tree control to control which places info tips are fired. This is the same as the "where" codes for the onGetInfoTip event for the Tree control.
New sessions property (System Object)
The sessions property was added to the system object to detect under program control changes in the session manager editor window.
New CloseDoc and OpenDoc methods (Printer Object)
The Printer object has always prematurely opened the document causing the printer icon to appear in the system tray even before any output is actually written to the printer. This means you cannot open a printer for reference purposes only (such as for print preview) without having that icon appear. In addition when you click on the icon it shows a document named "No Document Name" in progress even though nothing has yet been drawn to the printer. But more problematic is the fact that printing to print-to-file drivers (such as PDF drivers) causes the user to be prompted to enter a filename. This last undesirable behavior can be suppressed on some print-to-file drivers (such as the Adobe Distiller) by setting the caption property to "" on the Create/New method line when creating the printer object (before the implicit Open operation can take place). The new OpenDoc and CloseDoc methods were added to the Printer object to address these issues.
New FormatMessage method (System object)
The FormatMessage method on the system object allows formatting of error codes into message strings. This can be used to decode any standard error message number (such as returned by the GetLastError Windows function) including the error property for the Printer object.
New error property (Printer Object)
The error property on the Printer object is used to detect printing errors. If an error occurs during or after the print operation, the error property will have a non-zero value.
APL Grid Printing Enhanced
Methods, properties and events were added or changed to allow better control when printing or print previewing the APL Grid.
New Methods: XVirtualLoadNew properties: xMargin, xPrintBorderThickness, xPrintGridlineCadence, xPrintScaleString
Changed Properties: xPrintOptions
Changed Events: onXVirtualLoad
Select multiple rows and column headers with the mouse
You can select multiple row and column headers by clicking and dragging the mouse pointer across them.
The onXEditCancel and onXEditComplete events fire for combo cell in the APL Grid
The onXEditCancel and onXEditComplete events now fire when editing is cancelled or completed, respectively, in the drop-down list for a combo cell.
The XPrintMetrics method accepts a list of page numbers in the APL Grid
The XPrintMetrics method now accepts a list of page numbers and returns an array of (row column) ranges corresponding to each page.
The maximum number of columns in APL Grid increased to 2147483647
The maximum number of columns in APL Grid has increased from 32000 to 2147483647.
New XEnsureVisible method (APL Grid)
The XEnsureVisible method, when invoked, ensures that a cell is visible in the APL Grid
EnsureVisible option added to xActiveCell property (APL Grid)
Updated the xActiveCell property with the EnsureVisible option.
New xDragCell property (APL Grid)
The xDragCell property specifies the last cell in a selection in the APL Grid.
Bug Fixes
Interpreter
- APL+Win terminated when the )RESET system command was executed during the execution of
CMD
andDL
. - The SI stack did not properly reset when invoking the )RESET system command while in a loop executing
DL
,WGIVE
or other callback functions. - The execute primitive did not display correctly in
DM
.
Session
- The "Set Watch Points" hint for the Set Watch Points menu item did not display in the status bar.
- An extra line separator appeared in the Window menu in the session manager window.
- When starting the online help with the F1 key, the help window remained on top of the APL+Win session window.
- With the pushpin enabled in the Open Objects dialog, double clicking on a name in the list could result in selecting the wrong named object. This fix reduces that from occurring by repositioning the list as the focus leaves the Open Objects dialog and graying the list to indicate it may no longer be up to date (as names may be added to or deleted from the workspace).
APL GUI
- Tooltips for CommandButtons were disabled when a style 256 Combo was a child of the CommandBar.
- When menu options behaved like radio buttons (style 5), changing the caption for the menu that was selected changed the radio button to a check mark.
- The title bar in a Form appeared after the Form had been created hidden and without a title bar (caption='' and border=3).
APL Grid
- Setting the xView property deselected the selection in the grid.
- Setting the xActiveCell property did not scroll the active cell into view when a selection was made.
- The active cell could lose its borders when scrolling horizontally.
- When the active cell was changed to another cell in the same selection, the previous active cell didn't paint correctly, i.e., it did not change colors from white to black.
- Within a selection, pressing Shift+Tab did not move the active cell within the selection in reverse tab order.
- In some cases, the active cell would loses its borders when scrolling horizontally.
- The top-left corner header cell did not appear in print preview mode.
- The grid lines did not print.
- When calling APL Grid's xPrintWindow property with only a 0 argument, APL+Win incorrectly returned the error message:
WI ERROR: APL.Grid exception 80004005 LENGTH ERROR: You must specify Row Col Rows Cols when non-zero DC specified
". - Setting the xPrintZoom property to a large value caused APL Grid to go into an infinite loop (when executing the XPrintInit method).
System Requirements for APL+Win Version 7.2
Requirements vary for different combinations of components within APL+Win Version 7.2. Review the table below to determine the minimum system requirements for running APL+Win Version 7.2.
Processor |
450-megahertz (MHz) Pentium II-class processor (600-MHz Pentium III-class processor recommended) |
---|---|
Operating System |
APL+Win Version 7.2 can be installed onto any of the following systems:
|
Memory |
|
Hard Disk |
62 MB of available space required on installation drive |
APL+Win 7.0
Below is a description of new features and bug fixes in APL+Win 7.0
MOM
Name Trains
MOM
objects can now be referred to by a compound name of more than two parts.
For instance one.two.three
is now valid syntax for referencing a MOM object.
Œvr 'mom_name_train'
mom_name_train
[1] array„
¼10
[2] three„
Œmom 'array' ''
[3] three.array
[4] two„
Œmom 'three' ''
[5] two.three.array
[6] one„
Œmom 'two' ''
[7] one.two.three.array
mom_name_train
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
©
This is what occurred in previous version:
mom_name_train
1 2 3 4 5 6 7 8 9 10
SYNTAX ERROR
mom_name_train[5] two.three.array
^
Support for the Windows Recycle bin added to the )Drop
System Command
The Preferences dialog box contains a new check box labeled 'Use Recycle Bin on DROP'. Checking this option changes the )DROP command behavior to save the dropped Workspace in the Windows Recycle bin. The user will see a Recycle dialog box in the process. Leaving the box unchecked retains the old behavior of the )DROP command.
Note:This feature uses a Microsoft system DLL that is not supported in Windows Vista. Therefore, the 'Use Recycle Bin on DROP' check box is disabled in the Preferences dialog.
Bug Fixes
- The
]Rename
user command failed to rename a function when blanks were present immediately before or after the assignment arrow in the header. - The
FX
system function failed to create a function for a MOM Object System object when the header line in the function contained a quad-name followed by a (blank) space.
This is what occurred in the previous version:
)fns
vars
Œcr 'vars'
vars filter;Œpw ;a
foo„
Œmom '' ''
foo.Œfx Œcr 'vars'
1
WS NOT FOUND
message.
What's in APL+Win 6.4
Below is a description of new features included in APL+Win 6.4
- xPrintOptions Property (APL Grid)
WCALL 'W_Def'
WCALL 'W_Reset'
- Improvement to Recent Lines Dialog
- Resize Grip Added To Fetch Objects and Open Objects Dialogs
- Tooltipstyle Property for System Object
- Suppressing the "Unable to edit object" Message in onEditStart Handler
- Numeric Values with Full Precision (APL Grid)
- The xFormatMode Property (APL Grid)
- Improved Handling of Missing Values in APL Grid
- Bug Fixes
xPrintOptions Property (APL Grid)
The xPrintOptions
property enables the printing of header rows and columns in
APL Grid. You can set this property to 1 for column headers, 2 for row headers or 3 for
both column and row headers.
WCALL 'W_Def'
W_Def is used in the same way as W_Ini except that it lets you create WCALL definitions and other strings in your application that are stored into a local cache (memory) rather than written into the INI file.
These strings should also execute faster than W_Ini because no INI file reading or writing is involved. This permits setting WCALL definitions in a running application that might have a read-only INI file.
Note: These definitions are cleared with W_Reset.
The order of reading to access strings for WCALL used to be: Look in INI and if not found then look in
ADF (unless the [Config]IniFirst=1 is defined in INI file in which case ADF is accessed before INI). The
order of reading to access strings for WCALL always checks the W_Def cache first and then checks the INI
and ADF as before. You can get a list of all strings in a section by calling: WCALL 'W_Def' '[SectionName]'.
You can get a list of all strings in all sections by calling: WCALL 'W_Def' '[]'
When you reference a
string value with W_Ini it has historically never differentiated between strings defined in the INI file
versus those defined in ADF file. It returned the value found in either INI or ADF file.
WCALL 'W_Reset'
W_Reset is a built-in function that resets the WCALL sub-system. This is used to reset the WCALL definition bindings so they can be reloaded without restarting APL+Win.
Improvement to Recent Lines Dialog
In this version, the Recent Lines dialog box is non-modal, resizable and can be made to remain on top (via push-pin).
Resize Grip Added To Fetch Objects and Open Objects Dialogs
The Fetch Objects and Open Objects dialogs now have a resize grip in the lower right corner of the window.
Tooltipstyle Property for System Object
The purpose of the tooltipstyle
property is to control the behavior of a tooltip set for a control on a
Form. The tooltipstyle
property must be set before creating any controls on a
Form or MDIForm or else the setting might be ignored.
The default value for this property is 0. The settings currently available are:
- 1 = Always display tooltip when mouse is over the control regardless if the form is not activate.
- 2 = Suppress special handling of ampersands (&) in the tooltip property; without this value, a single ampersand will appear as an underscore in the tooltip.
- 64 = Display tooltip in a balloon style.
Suppressing the "Unable to edit object" Message in onEditStart Handler
Setting WRES[1]
set to ¯
1 in the onEditStart handler suppresses this message. This also restores the previous
cursor (rather than leaving the hourglass showing) when editing does not restart.
Numeric Values with Full Precision (APL Grid)
In version 5.0 of APL Grid, the xNumber property was updated to store full precision
numbers without being constrained by limits of text representation. But this precision
was not represented in XML data. This was addressed by adding the .hex. attribute to the
The xFormatMode Property (APL Grid)
The xFormatMode
property is used to control how currency values are formatted for
display in cells in the APL Grid.
Improved Handling of Missing Values in APL Grid
This enhancement was inspired by the old behavior of the grid which returned the
conversion error value (controlled by the xConversionErrorValue
property:
default = ¯
2147352572) when a cell containing a non-numeric value were referenced.
For example, if a cell had been edited to contain a value such as "abc" or "" and you
reference it with xNumber
property, it would return the conversion error value.
Users requested that they be able to store error values back into the grid by specifying a
numeric value matching the conversion error value. For example, if the conversion
error value was 999.999 and you used the xNumber
property to reference a cell
containing "abc" then the value 999.999 would be returned. They wanted to be able to
set the xNumber
property with 999.999 and have an error value stored back into the cell
in its place. However, since there is no way of knowing from the generic conversion
error value what string had actually caused conversion error it is impossible to replace
that string back into the grid.
For this reason it did not make sense to use the conversion error value as a signal for
storing some error marker back into the grid. Instead we introduced the concept of
"Missing Values" and introduced the xMissingValue
and xMissing
properties.
Bug Fixes
- Workspaces containing MOM objects with functions did not copy correctly in other workspaces.
- Selective assignment on arrays of MOM references or UCS data caused APL+Win to abort.
- Changing the
border
property reasserted the visible attribute for the Form that resulted in some visual anomalies. - ActiveX control objects did not repaint correctly after calling the
Paint
method on the object. - The six space indent in the session was not preserved when pasting copied text.
- When editing a variable beginning with
{delta-underbar} in the name, the
{delta-underbar} displayed as the floor primitive inWARG
in the onEditStart handler. - The APL Grid did not apply the proper formatting for cells containing currency values.
- The merged cell values were not stored in the
xml
andcontent
properties for the APL Grid object when the APL Grid object contained two or more header rows.
What's in APL+Win 6.2
Below is a description of new features included in APL+Win 6.2
- The Unique Primitive Function
- Printer Margins for the Session Manager
- The
)OUTPUT STRICT
Command Added WSELF
localization- Zip and Unzip in APL+Win
- The
FX
System Function for MOM Object System Objects - Bug Fixes
The Unique Primitive Function
Unique is a monadic function that selects the unique elements of a vector. Its result is a compression of its argument with all but the first instance of each distinct element removed. Unique is mapped to the ALT+V key.
Printer Margins for the Session Manager
When printing an APL+Win session or an Edit session from the Session Manager, you can now specify the margins to be used on the printed page via the Printer Margins settings in the Editor Options dialog. The margins can be specified in inches (default), points, or millimeters by following the number with the desired units; in, mm, and pt. The default margins are 0.75", 0.5", 0.75", and 0.5" for Left, Right, Top, and Bottom, respectively.
The )OUTPUT STRICT
Command Added
Like )OUTPUT ERROR
, this command also locates expressions that generate implicit output, but gives slightly
different behavior. The )OUTPUT ERROR
state may produce "IMPLICIT OUTPUT"
errors on some implicit output that is not visible. The )OUTPUT STRICT
command
produces errors only when visible implicit output is generated. In addition, this state
produces the "IMPLICIT OUTPUT" error message after the output has been generated,
so the effect of the output can be seen.
Note: All previous )OUTPUT
command behavior remains unchanged.
WSELF
localization
Delocalization of WSELF
to a non-existant GUI object now sets WSELF
to an empty vector instead of producing an error message.
Zip and Unzip in APL+Win
The Zip Class is an object programming model that provides facility for building
archives of files and extracting files from those archives. The Zip class provides an
interface to the Info-ZIP dynamic load libraries zip32.dll and unzip32static.dll. The Zip
class is manipulated with WI
.
For more information on Info-ZIP, see www.info-zip.org.
The FX
System Function for MOM Object System Objects
This works just like the ordinary FX
except that it defines the function inside the
referenced object. For example,
obj_ref „
MOM
'DLB' 'DEB' 'DTB' 'kind'
obj_ref.NL
2 3
DEB
DLB
DTB
obj_ref.CR
'DLB'
z „
DLB x
z „
(
/ x ¬
' ') \ x
obj_ref.FX
'z„
DAB x' 'z„
(z ¬
" ") / x'
DAB
obj_ref.NL
3
DAB
DEB
DLB
DTB
Bug Fixes
- APL+Win reported a System Failure referring to APLState.cpp and aborted.
- APL gave a LENGTH ERROR when the Draw method was used to get the size of an empty string. It now returns
0 0
. - The Tree control did not display its list when deleting multiple nodes with the
DeleteNodes
method where the nodes were in ascending order and contained nodes for a parent node and it's child node(s). This bug also caused the result from theDeleteNodes
method to be incorrect.
Copyright © 2024 APLNow LLC. All rights reserved.