Lescasse Consulting
 Home    Company    News    Prices    Download    Buy    Forums   
Read Me
Buy
Forums
Resume
AntiSpam 1.2
wBackup 1.11
NetAccess 2.2 
APL+Win 8.2 
APL+Win Products 
     • APL+Win Intro
     • APL+Win 8.2
     • APL+Win 8.1
     • APL+Win 8.0
     • APL+Win 7.3
     • APL+Win 7.2
     • APL+Win 7.0
     • APL+Win 6.4
     • APL+Win 6.2
     • APL+Win 6.0
     • APL+Win 5.2
     • APL+Win 5.0
     • APL+Win 4.0
     • APL+Win 3.6
     • APL+Win 3.5.03
     • APL+Win 3.5
     • APL+Win 3.0.15
     • APL+Win 3.0
     • RainPro 5.2e
     • GraphX 1.3
APL+Win Objects™ 
APL+Win Training 
APL+Web Services
APL+ History
Dyalog.Net Tutorial
Conferences 
Powerpoint
White Papers
Web Hosting
References
Links
 
APL+Win Objects™ 6.0

TADO5
TADO5 Tutorial
TAPLDraw5
TAPLEdit5
TAPLSession5
TAbale5
TAboutBox5
TAccess5
TAgent5
TBlatMail5
TButton5
TCDO5
TCRC5
TCancelButton5
TCheck5
TCheckGroup5
TChildForm5
TChooseColor5
TChooseFont5
TClipBoard5
TClock5
TCodeStats5
TColors5
TCombo5
TComboDrive5
TComboFilter5
TComboList5
TComboTree5
TCommandBar5
TCommandButton5
TControlClass5
TCueCard5
TDHTML5
TDHTMLEditor5
TDateTime5
TDateTimeFr5
TDates5
TDemoHandlers5
TDisplay5
TDOS5
TDualSelect5
TEdit5
TEditAmount5
TEditDir5
TEditEnter5
TEditFile5
TEditGrid5
TEditList5
TEditListview5
TEditMenu5
TEditNum5
TEditSelect5
TEditSpin5
TEmail5
TError5
TExampleForm5
TExcel5
TExcel5 Tutorial
TFindReplace5
TFOne5
TFTP5
TFTP5 Tutorial
TFileCompare5
TFileMenu5
TFileMenuDef5
TFlatButton5
TForm5
TFormClass5
TFormEditor5
TFrame5
TGetDir5
TGif5
TGifForm5
TGifWb5
TGoMenu5
TGraphX5
TGrid5
TGridDisplay5
TGridPrint5
TGUID5
THLine5
THTML5
THTML5 Tutorial
THTTP5
THelp5
THelpMenu5
TImagelist5
TInfo5
TIniFile5
TInstall5
TInternet5
TJpg5
TJpgWb5
TLabel5
TList5
TListview5
TLock5
TLogs5
TMAPI5
TMath5
TMDIForm5
TMSOutlook5
TMaskEdit5
TMedia5
TMenu5
TMessage5
TModalCall5
TMsgBox5
TNavigator5
TNetwork5
TNonVisualClass5
TODBC5
TOKButton5
TObject5
TOpenFile5
TOption5
TOptionGroup5
TOutlook5
TOutlookMail5
TOWCSpread5
TPDF5
TPFKeys5
TPage5
TPassword5
TPicture5
TPing5
TPopupMenu5
TPowerpoint5
TPowerpoint5 Tutorial
TPrinter5
TProgress5
TProgressDlg5
TQuestion5
TRegistry5
TRegistryKey5
TResource5
TRichEdit5
TSPX5
TSQLDMO5
TScheduler5
TScroll5
TSelector5
TSpinner5
TSplitter5
TStatus5
TStopWatch5
TTest5
TTestError5
TTextFile5
TTimer5
TTip5
TTipForm5
TTLI5
TToolBar5
TToolbox5
TToolsMenu5
TTrackbar5
TTranslate5
TTree5
TVLine5
TViewMenu5
TWebBrowser5
TWebServer5
TWebSite5
TWebSiteNet5
TWinMenu5
TWord5
TYesNo5
    Visits:  352 (220 on line) Last Update: Sep 1, 2008  
    APL+Win 8.1    Printer Friendly  


Warning: Starting with APL+Win 6.2, APL+Win Updates are only available through APLDN Subscriptions (2-year Tier-7 Subscriptions).  3-year Tier-8 Subscriptions have been discontinued.  APL2000 will be publishing more APL+Win updates, more often (one per quarter) which will allow you to stay always up to date with the latest version of the product.
 

Note: click on APL+Win Products in this site left menu to see all enhancements brought to previous APL+Win versions, or click on the following version numbers: 3.0, 3.0.15, 3.5, 3.5.03, 3.6, 4.0, 5.0, 5.2, 6.0, 6.2, 6.4, 7.0, 7.2, 7.3, 8.0, and 8.1 to see enhancements of the corresponding version.
 

APL+Win Version 8.1

What's New in APL+Win 8.1

This update contains the critical fixes for the two bugs listed below:

  1. In version 7.2 and later, APL+Win would crash when querying the list property for a Combo object containing one or more scalar items in the drop-down list.
  2. In versions 7.3 and 8.0, APL+Win could crash when running two copies of APL+Win and switching between their Œwi Forms with a GUI control with functioning tooltips.

Note: The update requires APL+Win 8.0 be installed on your computer.

System Requirements for APL+Win Version 8.1

Requirements vary for different combinations of components within APL+Win Version 8.0. Review the table below to determine the minimum system requirements for running APL+Win Version 8.1.

Processor
450-megahertz (MHz) Pentium II-class processor
(600-MHz Pentium III-class processor recommended)
Operating System    
APL+Win Version 8.0 can be installed onto any of the following systems:
  • Windows Vista
  • Windows Server 2003
  • Windows XP
  • Windows 2000
  • Memory
  • Windows Vista: 1 GB of RAM
  • Windows Server 2003: 512 MB of RAM
  • Windows XP: 512 MB of RAM
  • Windows 2000: 512 MB of RAM
  • Hard Disk
    65 MB of available space required on installation drive

    Copyright © 2008 APLNow, LLC. All rights reserved.

    APL+Win Version 8.0

    Introducing APL+Win Version 8.0. 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 8.0?

    APL+Win 8.0
    Released: May 2008

    APL+Win 8.0 represents the continuing support by APL2000 for the APL application development language on the Microsoft Windows operating system platform.

    New tooltiptime property

    The tooltiptime property specifies the delay time and display time of tooltips in APL GUI controls.

    New Tree style property value

    128 = When set, label tips are suppressed in the Tree control.

    New Listview style properties values

       262144 = When set, label tips are suppressed in the Listview.
       525288 = When set, info tips are supporessed in the Listview.

    Update to CanColSize, ColSizing, ColSized, CanRowSize, RowSizing, and RowSized events

    Modified onCanColSize, onColSizing, onColSized, onCanRowSize, onRowSizing, and onRowSized event handlers to return ¯99999 for row and column argument when the corner button is being used to resize. This differentiates it from specific row and column header indexes, ¯1, ¯2, etc.

    New xNChanges property

    The xNChanges property returns number of changed cells in the Grid.

    Automatic clearing of Combo cell text on Delete key

    Support automatic clearing of Combo cells when Delete key is pressed. This must be enabled with the xGridOptions=32 property.

    New xGridOptions property

    The xGridOptions property controls some Grid options. Sum of the following option codes or 0 for defaults:

    • 1 = keep selection rectangle displayed when Grid loses focus
    • 2 = use system gui font
    • 4 = add extra pixel to default body xRowSize (rows > 0)
    • 8 = add extra pixel to default header xRowSize (rows < 0)
    • 16 = suppress onXSelectionChange event when active cell changes without changing selection
    • 32 = automatically clear combo cell value when DELETE key is pressed
    • 64 = suppress replication handle (fill handle) on focus rectangle (note: if xReplMode not enabled)
    • 128 = enable storing of transient properties.

    Update to Print and Print Preview with fixed rows and columns

    New xPrintOptions property option to enable printing of fixed rows and columns:

    • xPrintOptions = 16: show fixed-rows
    • xPrintOptions = 32: show fixed-cols

    Update to XEditStart method

    Invoking the XEditStart method in a combo cell in the Grid drops down the list in a combo cell.

    New selection highlighting to header cells

    Enhanced Grid so that the xColorSelBack and xColorSelText colors set on header cells is used above and left of selected cells. This allows emulatation of Excel behavior during cell selection.

    Improved the way cells are stored to better support HUGE virtual grids

    The new scheme better supports sparse data by storing column number information along with cells so that skipped segments can occur in the data. We do not store absolute column numbers with the data because doing so would require that we renumber all data in the Grid if a column is ever inserted or deleted. Instead we store the gap between columns.

    Bug Fixes

    Interpreter
    • ŒCFNAMES contained extraneous garbage characters and lines when there were more the 8,192 characters in the name list.
    Session Manager Window
    • The expression "ŒSPLITŒSI" was flagged as a SYNTAX ERROR in the session.
    • When multiple monitors were in use, the display of the value tip in the session was constrained to the workarea of the primary monitor.
    APL GUI
    • The tooltipenabled property was not saved in the state and def properties.
    • The tooltipenabled property did not propagate correctly if sent on the system object after other GUI objects were already opened.
    • A tooltip didn't appear when the text of an item in the Tree didn't fit within the available display width.
    • Multiple GetInfoTip events fired for the Tree class when the tooltip appeared.
    APL Grid
    • The active cell in the grid temporarily lost it's border when scrolling horizontally.
    • Two ValueChange events fired when dropping down a combo cell in the grid.
    • International characters displayed as question marks in cells after closing and reopening the Grid.
    • Dragging the vertical and horizontal edges of the corner cell in the Grid did not fire the ColSized and RowSized events.
    • Two CanColSize events fired after the ColSized event when dragging the edges of the corner cell in the Grid.
    • The xValue property reported a ŒWI ERROR when the value argument was an empty array. The fix was not specific to xValue and was generalized for all Grid properties that set a value.
    • Typing the (lowercase) 'q' key in the combo cell caused the drop-down list to show.
    • Scrolling the mouse wheel removed the selection block.
    • The onXSelectionChange handler did not fire in the Grid when the active cell didn't change.
    • When the first letter typed in a combo cell matched the last item in the list, that item didn't display in the edit portion of the combo cell.
    • When clicking the header of a cell, the selection rectangle extended beyond the last row cell in the Grid.
    • Tracking problems were observed when dragging the horizontal scroll bar with the mouse in a very wide Grid.
    • Double clicking with the mouse the vertical edge between the corner cell and the header column header in the Grid did not autofit the text in row cells.
    • Double clicking the right vertical edge of the first header column in the Grid did not autofit the text in the ellipsis cell (CellTypeEx=4) when the text appeared with ellipsis.
    • Grid printing echo content in adjacent empty cell If we have a left-justified character cell followed by an adjacent empty cell (or blank) cell, the first cell is partially echoed in the adjacent empty cell.
    • Some situations caused printed output to draw a strange rectangle above and to the right of the Grid.

    System Requirements for APL+Win Version 8.0

    Requirements vary for different combinations of components within APL+Win Version 8.0. Review the table below to determine the minimum system requirements for running APL+Win Version 8.0.

    Processor
    450-megahertz (MHz) Pentium II-class processor
    (600-MHz Pentium III-class processor recommended)
    Operating System    
    APL+Win Version 8.0 can be installed onto any of the following systems:
  • Windows Vista
  • Windows Server 2003
  • Windows XP
  • Windows 2000
  • Memory
  • Windows Vista: 1 GB of RAM
  • Windows Server 2003: 512 MB of RAM
  • Windows XP: 512 MB of RAM
  • Windows 2000: 512 MB of RAM
  • Hard Disk
    65 MB of available space required on installation drive

    Copyright © 2008 APLNow, LLC. All rights reserved.

    Introducing APL+Win Version 7.3. 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 environemnt available. It is built to provide both stand alone application development and to enable integration with the Web Browser and Web Services. By allowing applications to share data over the Internet, APL+Win enables developers to assemble applications from new and existing code. Leveraging legacy code, regardless of the development language.

    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.3?

    APL+Win 7.3
    Released November, 2007

    APL+Win 7.3 represents the continuing support by APL2000 for the APL application development language on the Microsoft Windows operating system platform.

    New GetSession method (System Object)

    The GetSession method for the system object returns the function vector representation (ŒVR), character array, character vector, or numeric array for an editor session.

    Bug Fixes

    Interpreter
    • Addressed problem that caused ŒFREAD ¨ arg to return the argument arg instead of the result from the ¨ function.
    • ŒCOPY and ŒPCOPY system functions reported WS ARGUMENT ERROR.
    Session
    • Token searches always start at the beginning of the current line when the cursor is set in the middle.
    • The session reported the error flag for the following valid statement: 1 2 3 + .+ 10 20 30
    • "Replace All", after finding the target, began the replace at the next occurrence instead of the current one.
    APL GUI
    • Querying the list property for a style 4 (sorted) combo control did not return a sorted list.
    APL Grid
    • Pressing the Enter key in a combo style cell started the dropdown list in the combo cell.
    • Typing the first letter of the last item in the combo cell did not make that item appear in the cell.

    System Requirements for APL+Win Version 7.3

    Requirements vary for different combinations of components within APL+Win Version 7.3. Review the table below to determine the minimum system requirements for running APL+Win Version 7.3.

    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:
    • Windows Vista
    • Windows Server 2003
    • Windows XP
    • Windows 2000
    Memory
    • Windows Vista: 1 GB of RAM
    • Windows Server 2003: 512 MB of RAM
    • Windows XP: 512 MB of RAM
    • Windows 2000: 512 MB of RAM
    Hard Disk 62 MB of available space required on installation drive


    What's New in APL+Win 7.2?

    APL+Win 7.2
    Released August 10, 2007

    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 environemnt available. It is built to provide both stand alone application development and to enable integration with the Web Browser and Web Services. By allowing applications to share data over the Internet, APL+Win enables developers to assemble applications from new and existing code. Leveraging legacy code, regardless of the development language.

    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.

    APLWin72 Localization level specific referencing

    A number of system functions have been 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 has been 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.

    APLWin72  New "APL2000 Home Page" option in the Help menu

    The "APL2000 Home Page" option when clicked launches your Internet browser to the APL2000 website.

    APLWin72  The CodeWalker Pause menu and Toolbar button are 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.

    APLWin72  Changed error message when editing ŒNA system function

    When editing a ŒNA system function, the new error message reported is Cannot edit associated function.

    APLWin72  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 (such as the Tree control).
    • 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.

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

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

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

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

    APLWin72  APL Grid Printing Enhanced

    New methods and properties were added or enhanced to allow better control when printing or print previewing the APL Grid.

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

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

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

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

    APLWin72  New XEnsureVisible method (APL Grid)

    The XEnsureVisible method, when invoked, ensures that a cell is visible in APL Grid

    APLWin72  New xDragCell property (APL Grid)

    The xDragCell property specifies the last cell in a selection in APL Grid.

    APLWin72  EnsureVisible option added to xActiveCell property (APL Grid)

    Updated the xActiveCell property with the EnsureVisible option.

    APLWin72  Bug Fixes

    Interpreter
    • APL+Win terminated when the )RESET system command was executed during the execution of ŒCMD and ŒDL.
    • 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 gridlines 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:
    • Windows Vista
    • Windows Server 2003
    • Windows XP
    • Windows 2000
    Memory
    • Windows Vista: 1 GB of RAM
    • Windows Server 2003: 512 MB of RAM
    • Windows XP: 512 MB of RAM
    • Windows 2000: 512 MB of RAM
    Hard Disk 62 MB of available space required on installation drive


     
    What's New in APL+Win 7.0?

     
    APL+Win 7.0
    Released February 7, 2007

    Test ŒMOM Name Trains

    A compound name is a syntactic construct used to refer to a member of a MOM Object System object. For example, the following APL expression contains two compound names:


          fuel.weight + wing.tank.weight
     

    Prior to this version, all compound names were restricted to just two simple names. Version 7.0 removes that restriction except for compound names that are the target of an assignment.

    Version 6.4 would give an error for the second compound name in the example. Now this name would be interpreted as:



          t <- wing.tank
          t.weight
     

    where "t" is an otherwise unused temporary variable.

    Arbitrarily long compound names, such as:



          headBone.neckBone.backBone.pelvis.thighBone.kneeBone.shinBone
     

    are supported.

    Note: The inner names must be member variables; otherwise, a VALUE ERROR is given.

     

    Test  Support the Recycle bin for the )Drop ws command.

    The Preferences dialog box contains a new checkbox 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 on Microsoft Vista:

    This feature uses a system DLL that is not supported in Vista. Therefore, this feature is currently disabled under Vista and the 'Use Recycle Bin on DROP' checkbox in the Preferences dialog is disabled.

    Test  Bug Fixes

  • Bug Fix: obj_ref.[]FX failed when the header line contained a quad-name followed by a (blank) space.
     
  • Bug Fix: The ]rename user command failed to rename a function when blanks were present immediately before or after the assignment arrow in the header.
     
  • Bug Fix: In Windows Vista or Windows 2000/XP with Internet Explorer 7 installed, HTML topics weren't displayed in the popup windows in the help files.

  • This document is an overview of the new features in APL+Win version 6 and covers releases 6.0, 6.2 & 6.4.  Features covered are extensions to the language, improvements and changes to the session manager, additions to the graphical user interface (GUI), system interface and other non-GUI related facilities. Much of this document was originally written for the “What’s New in APL+Win version 6.x” document distributed with their respective releases of APL+Win.

    Contents



    APL+Win 6.4
    Released October 13, 2006

      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.  I followed that same pattern and referencing a string via W_Ini returns the first definition found in W_Def-cache, INI, or ADF.

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

      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).  Figure 9 shows the Recent Lines dialog.

    Test
    Figure 9  Recent Lines dialog

      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 this 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.  
    Note: this value is experimental in this release.  
    Known issues:&nbsp;
    1) The balloon style tooltip on occasion flicker where the balloon displays, hides, and reappears;
    2) the Page doesn’t respect this style value

      Suppressing the "Unable to edit object" Message in onEditStart Handler

    Setting ŒWRES[1] set to ¯1 suppresses this message. This also restores the previous cursor (rather than leaving the hourglass showing) when editing doesn't 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 as expected.

    This was addressed by adding the hex attribute to the <value> element that stores the numeric value as a hex string if it differs from the formatted value.  This is in addition to the raw attribute when the formatted representation and/or raw attribute don't accurately represent the full precision of the data.  For example,

          Œwself„'form.grid'
          Œwi 'xValue' 1 1 (1.23456789012345)
          Œwi 'xXml'
          ...

      <row index="1">
       <cell row="1" col="1">
       <value hex="3ff3c0ca428c59e1" type="number">1.23456789012345</value>
       </cell>
          ...

      The xFormatMode Poperty (APL Grid)

    The xFormatMode property is used to control how currency values are formatted for display in cells in the APL Grid.  This is the helpstring for the xFormatMode property:

    xFormatMode property:

           Value „ ŒWI 'xFormatMode' Rows Cols
           ŒWI 'xFormatMode' Rows Cols Value

    Cell code; default ¯1;
    controls xLocale-based formatting when xFormat not specified
    Value: matrix of codes:
    ¯1 = inherit;
      0 = disable
      1 = enable for currency
      2 = enable for currency (with user overrides)

    The value 1 gives formatting according to international locale standards.   The value 2 gives formatting that may have been customized by the user on their computer via the regional settings.

      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.  A cell is considered to have a "missing value" when either of the following conditions is true:

    1. The cell is undefined (no properties ever set for the cell or it has been deleted)
    2. The cell contains an empty string value (i.e., the xText property would return an empty string value for that cell).

    A cell can get into the second missing state (defined with an empty string value) in several ways:

    1. Set the xText property with an empty string value ("")
    2. Set the xNumber, xDate or xCurrency property with an empty string value ('').  Note that this used to give an error. However, trying to store a string that is not empty but contains all blanks is not considered a missing value and still causes an error.
    3. Set the xNumber, xDate or xCurrency property with a numeric value that matches the xMissingValue state of the grid.
    4. Paste an empty string value into a cell from the clipboard.
    5. Edit cell value and store an empty string into cell.

    xMissingValue property:

         Value „ ŒWI 'xMissingValue'
         ŒWI 'xMissingValue' Value

             Grid value; (default=0);
             Value used to denote missing numeric values;
             Zero (default) means no missing value
             Value:  numeric scalar or empty string ("")

    The xMissingValue property allows you to control what value is returned when you reference a cell containing an empty string value using the xNumber, xDate, or xCurrency properties.  As with the xConversionErrorValue, the xMissingValue property applies to the whole grid.  This value is also returned when you reference the xValue property for a numeric type cell that is missing.  However, the xMissingValue is NOT returned when you reference an empty cell with the xText property.  In that case an empty string ("") is always returned.  Similarly, referencing an empty text cell via the xValue property returns an empty string ("").

    The xMissingValue property has a default value of zero (0) which means "not defined".  In this case the missing value is not defined and no numeric value is recognized as "missing". However, you can still store missing values into cells by setting the xNumber, xDate, or xCurrency property with empty string values ("").  However, when such numeric missing cells are referenced via xNumber, xDatexCurrency, or xValue they return the xConversionErrorValue when xMissingValue is undefined since they cannot be represented by a numeric value.

    However, if the xMissingValue is not defined, then a xConversionErrorValue is returned (as before) for the cases above that would have returned an xMissingValue. The xConversionErrorValue is never returned by the xText property nor by the xValue property when referencing text type cells. This means that unless you set the xMissingValue the behavior is exactly as before with the exception that you can specify empty string argument values with the xNumber, xDate and xCurrency properties.

    The xMissingValue property also controls what value is recognized as the missing value when you set a numeric value in the xNumber, xDate, xCurrency, or xValue property. However, when you set the xText property with a numeric value it is NOT recognized as a missing value even if its value matches the xMissingValue setting. This is done for historical reasons since numeric values stored into the xText property have always been converted into string values representing the number.  So a 999 is stored as a "999" text string. Similarly, but with the opposite effect, string values such as "999" have always been accepted as an argument when setting the xNumber, xDate, or xCurrency property and converted to a numeric value. Therefore string values whose numeric representation matches the xMissingValue are interpreted as missing when setting the xNumber, xDate, and xCurrency properties.

    xMissing property:

         Value „ ŒWI 'xMissing' Rows Cols
         ŒWI 'xMissing' Rows Cols Value

             Cell flag; boolean flag indicating whether cell
             is not loaded (empty) or contains a missing value;
             1 = missing; 0 = not missing;
             Value: boolean matrix of flags (one value per cell)

    The xMissing property allows you to query which cells are missing or to make cells missing.  It specifies a set of rows and columns on the current page to be set or queried regarding their missing state.

    Querying the xMissing property returns 1 for any cell that is considered missing (based on the rules outlined above).  Namely this means cells that are not defined (empty) or has an empty string value stored in them ("").  It returns 0 for cells that contain non-empty string values (including values for numeric cells that are not valid numbers and would result in a conversion error).

    Setting the xMissing property clears the string content of any cells you specify as one (1) to an empty state.  It does not touch cells you specify as zero (0).  So you can view this as doing a logical OR operation on the missing state of the cells.


    APL+Win 6.2
    Released July 17, 2006

      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.  For example,

           ž (123 'abc' 'def') ('a b c') ('abc') (1 2 3) ('a b c')
    123 abc def  a b c abc  1 2 3

      Printer Margins for the Session Manager

    When printing an APL session or an Edit session from the Session Manager, you can now specify the margins to be used on the printed page. The printer margins can be specified 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. Figure 8 shows the Printer Margins settings in the Editor Options dialog.

    Test
    Figure 8  Editor Options dialog

      The )OUTPUT STRICT Command Added

    )OUTPUT STRICT

    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-existent name 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

      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


    APL+Win 6.0
    Released April 26, 2006

      ŒMOM Object System

    Note:  The MOM object system is evolving and its implementation is not complete.

    The MOM object system extends APL with simple basic facilities for object based programming, a predominant design and structuring paradigm for modern programming languages. MOM objects are typeless, classless, and inherently polymorphic.

    A MOM object system is a simple container enclosing a set of named APL functions and variables, where each Mom object is distinct from every other MOM object.  MOM objects themselves are neither named nor directly referred to in programs.

    Syntactically, MOM object members are accessed as objref.member where objref is a variable holding an object reference and member is the name of the member within the object.  For example,

    For a more in‑depth description of the MOM object system, refer to Bill Rutiser’s (the designer of the MOM object system) session “The MOM Object System”.

      Try-Catch Exception Handling

    The Try-Catch exception handling extends the APL+Win control structure family to address static exception handling.  It was designed to be compatible with and interact with the existing ŒELX handlers and should help facilitate clearer and more reliable code.


    Syntax:
          :TRY
                     Statements to try
          :CATCHIF first condition expression
                     Statements to handle exceptions satisfying the first condition
          :CATCHIF second condition expression
                     Statements to handle exceptions satisfying the second condition
          :CATCHALL
                     Statements to handle all other exceptions
          :ENDTRY

    The structure always begins with a :TRY clause and ends with a :ENDRY statement.  As with other control structures, the keywords are case insensitive and :END may be substituted for :ENDTRY.

    There must be at least one :CATCHIF or :CATCHALL clause.  There may be no more than one :CATCHALL clause, which must be the last.

    The :CATCHIF statement consists of its keyword followed by an expression that yields 1 or 0.  The other control statements consist of only a keyword.

    Each control statement except :ENDTRY is followed by a block of APL statements (which may be empty).  These blocks may contain additional try-catch and other control structures.  They must be properly nested.

      Filter Option in the Open and Fetch Objects Dialogs

    The filter option in the Open and Fetch dialogs that controls the contents of the function and variable list.  The filter is in a drop-down at the bottom of the dialog.  The filtering is case insensitive and has a very simple syntax.  Asterisks may be used to denote zero or more characters.  The filter drop-down stores new filters (up to eight) when objects are opened from the dialog.  The drop-down contents are not saved across sessions.  Figures 1 and 2 illustrate filter use.

    Test Test
        Figure 1  Empty filter box, all functions listed  Figure 2  List functions starting with “Get”

      Session Logging Info in APLW.INI

    The [Session]Logging System Info entry in APLW.INI stores additional information in the log file such as the contents of Œsysver, the executable’s full path and file names, and its modification time and the user and computer names. Including any of the following keywords, separated by commas will display the corresponding information at the beginning of the session:

    sysver   the contents of Œsysver
    exe   the executable’s full path and file names, and its modification time
    user   the user and computer name

    With

    [Session]
    Logging System Info=sysver,exe,user

    set in APLW.INI, Figure 3 illustrates this use.

    Test
    Figure 3  Session logging info.

      Handling Implicit Output in the Session

    Code that generates unintended implicit output has always been difficult to find in an APL application.  A new command: )OUTPUT helps to manage implicit output.  This command allows the programmer to turn implicit output off or on.  It also provides a means for locating code which performs implicit output.  The command sets a three state switch in the active workspace.  This switch is workspace relative.  It is saved with the workspace on a )Save command and loaded with the workspace on a )LOAD command.  The )CLEAR command resets )OUTPUT to the default value.

    Note: Implicit output states only apply to expressions executed within a function or an event handler.  They do not apply to immediate execution statements.


    )OUTPUT
    This command prints the current implicit output state.  The other three commands (ON, OFF, and ERROR) print the previous implicit output state.

    The three states are set by the following arguments to the system command:

    )OUTPUT ON
    This is the default state.  Implicit output is generated by any APL expression that does not assign its result.

    )OUTPUT OFF
    In this state Implicit output is not generated.

    )OUTPUT ERROR
    This state is used to locate expressions that generate implicit output.  In this state execution of any expression that would generate implicit output in the default state causes an “IMPLICIT OUTPUT ERROR”.  An expression beginning with 0 0½ by definition generates no output and so does not cause an “IMPLICIT OUTPUT ERROR”.

      Highlighted Scrolling Speed Control

    Scrolling speed control has been added to the system for highlighted scrolling.  When using the mouse to highlight text, the scrolling speed is determined by the distance of the mouse from the client area of the session.  The further the mouse is from the client area, the faster the text is scrolled.  The rate of change is inversely dependant on the distance.  So slow scrolling changes quickly as the mouse is moved and fast scrolling changes less quickly.  If the mouse is moved all the way to the top or bottom of the screen, control of the scroll speed is released and scrolling speed proceeds at its maximum rate.

      Session Manager Editor Events

    The session manager editor has new events on the system object ('#') that supports dynamic loading of functions and variables when you edit them.

    The onEditLoad event fires when you start an edit session or fetch an object into the edit session.  ŒWARG contains the name of the object.

    The onEditStart event fires when an edit session is about to start. This event fires before onEditStart and gives you the opportunity to affect the way the edit session starts with setting ŒWARG and ŒWRES.

    The onEditNL event fires when the functions and variables dialog box is being initialized. You use ŒWARG and ŒWRES to control the contents of the dialog box.

    The onEditSaved event fires after you save the contents of