Lescasse Consulting
 Home    Company    News    Prices    Download    Buy    Forums   
Read Me
Buy
Forums
Resume
AntiSpam 1.2
wBackup 1.11
NetAccess 2.0
Visual APL 1.0 
APL+Win 8.0 
APL+Win Products 
APL+Win Objects™ 
APL+Win Training 
APL+Web Services
APL+Web Component 
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:  6332 (68 on line) Last Update: Dec 4, 2003  
    APL+Win 5.0    Printer Friendly  

Memory Management

APL+Win 5.0 now uses a Virtual Address Space and makes a dynamic use of your PC memory!

This is a great enhancement since this means that APL+Win will by default use as much memory as needed and that you will practically no longer encounter any WS FULL problem any more!

The new Memory Management characteristics are:

  • Does not commit physical memory specified
  • Starts with minimum commitment
  • Acquires more actual storage as needed
  • Starts with minimum commitment
  • Returns memory if unneeded
  • Don't set memory at all
    • Or "set it large and forget about it"
    • allows setting with M, K or P (P for percentage of RAM
  • Byproduct: []copy and []pcopy no longer use temp file and are much faster
Session Changes

The Preferences Dialog, the Color Dialog and the Find and Replace dialog have been much improved in version 5.0, allowing much more efficient work in the APL Session.

Here are a few enhancements avilable in the APL Session:

  • the Recall Stack (Ctrl+F9) is now customizable
  • you can choose between Long and Short Date Format
  • you can customize your Mouse Buttons Behaviour
  • a new Popup Menu is available in the Editor
The Preferences Dialog
The New APL+Win 5.0 Preferences Dialog

The New APL+Win 5.0 Preferences Dialog
The Color Dialog

Using color in the session to identify types of displayed items has been expanded, and the choices have changed. (This has been referred to in the past as "syntax coloring," but it involves more than syntactic elements.) The new color selection scheme is recorded in the .INI file with new entries. If new entries are not set, the system reads old-style entries and converts them to the new entries. However, it leaves the old entries intact, so you can still use the .INI file with older systems.

The New APL+Win 5.0 Color Dialog

The New APL+Win 5.0 Color Dialog
The Find and Replace Dialog

The Find and Replace dialogs now use a drop-down Combo box to define the search target and replace text. The session remembers the last 20 entries in the list. The Case (match case or case-insensitive) selection is independent of the search type, except that tokens are always case-insensitive. There are now two non-token search types: whole word and match substrings. One important difference between a token and a whole word is that a colon is part of the text for a token, but it is a separate entity when matching a whole word. Thus, searching for the token "end" will find "end" but not ":end"; searching for the whole word "end" will find it in both places.

The New APL+Win 5.0 Search & Replace Dialog

The New APL+Win 5.0 Search & Replace Dialog
Miscellaneous Session Items

The APL+Win 5.0 Session has been enhanced:

  • Localization (Ctrl+L)
    • Applies to system variables, names in strings and comments
    • Invalid items get warning messages
  • Use Ctrl+= & Ctrl+Shift+= to increase reduce font size in the APL Session
  • System object "caption" identifies each session when using multiple sessions
  • Recall line stack remembered between sessions if session logging used
Mouse Wheel

The APL session now recognizes mouse-wheel events. In particular, this means you can go to the Control Panel/Settings/Mouse and: turn on the wheel; choose the direction; specify the number of lines per click; or scroll a screen at a time. You can also turn on the wheel button and get various behaviors that depend on your particular mouse driver, as you could previously. In addition, some wheel mouse drivers have a Universal Scrolling option that converts mouse events to keyboard scroll events. These may also work in the session, and they may have previously. APL+Win does not support the panning facility, although you may get the effect of this working because of Universal Scrolling.

Misc Items

Various other items have been improved:

  • []chdir now accepts UNC arguments
    • '' []chdir '\\machinename\path'
  • []wcall 'W_IniFile' now returns full path
  • []wcall 'W_AdfFile' now returns full path
  • []wcall 'W_LogFile' is new and returns the APL Log file full path
  • []copy and []pcopy can now be called in the Runtime System to copy from Runtime workspaces
  • []copy and []pcopy are now very much faster, almost instantaneous
[]WI User Interface
RichEdit

  • Advanced Typography style 262144
    • requires RichEdit version 3 control
    • needed for below items
  • Types of Tab stops for seltabs
    • nested vector of two- or three-element vectors. The first element is the location. The second element of each nested vector specifieds the type of Tab stop (0=left justified [normal]; 1=centered; 2=right justified; 3=decimal)
  • Adding Leaders for seltabs
    • A leader is a repeated character that displays between the end of the text preceding the Taband the text that is located at the Tab stop
  • Two new paragraph formatting properties:
    • selspacebefore
    • selspaceafter
  • Etc.
Miscellaneous

  • Ellipsis styles for labels
    • Example: C:\program files\program\long...\file.ext
  • Edit and Combo classes autocomplete property
    • 1 = file system and rest of shell
    • 2 = url in history
    • 4 = url in recent used list
    • 8 = use the Tab key to move through the list
    • 16 = the file system only
    • 32 = directories, servers and shares (not files)
  • new Info method available for all classes
    • returns list of available methods, properties, events
    • allows you to specify pattern, to reduce the returned items
    • can show hidden events/methods/properties

There are two new mutually exclusive styles for the Label object that provide the Microsoft style ellipsis for captions that exceed the length of the label. If you set the style property to include 32, the ellipsis is placed at the end of the visible caption. If you set the style property to include 64, and the caption has the form of a path, the ellipsis is placed in the middle of the caption so the final (file) name is readable. Here are the caption properties for four labels and a picture of the results.

The new Label Ellipsis styles

The new Label Ellipsis styles
[]NI Sockets

There are several new methods you can use for sockets programming using the system function []ni. These methods are part of the Winsock 1.1 specification. See the chapter TCP/IP and Sockets in APL+Win in the Version 4 System Funtions Manual for the description of the implementation of []ni.

  • New methods part of the WinSock 1.1 specification have been added:
    • GetConst: return the integer value of either named constant for a socket type
    • GetProtoByNumber: get information about the named protocol
    • GetServByPort: get information about the service associated with the specified port
    • GetSockOpt: check and return the socket option value
    • GetSockOpt: set/disable socket option value
Default Return Code

You can now set a default return code from your application

  • Return code set using []sys[22]
  • Default return code
    • [Config] exitcode=integer
    • Can be specified on command line:
      - Aplwr.exe [Config]exitcode=99
    • Allows a failing application to return information to caller
    • Caller looks at DOS errorlevel or Windows at GetExitCodeThread API
The Registry Object (aplutil.dll)

The external Registry Object (aplutil.dll) allows you to work with the Windows Registry, using []WI.

With the Registry object you can:

  • Create & delete registry keys
  • Create & delete items in keys
  • Get & set the values of items in a key
  • Get a handle to a registry key (to use with a []wcall)
  • Trap events when registry keys change
  • and more...

In the following example, we read the registry subkeys contained in the HKEY_CURRENT_USER\Software\EuroManager\Palette key and then create a new subkey called Demo. We then add 2 value-name pairs to the Demo subkey (Num and Char) and then read them from the Registry.

The Palette registry key before using he Registry object

The Palette registry key before using he Registry object
'reg'Świ'*Create' 'APL2000.RegKey'
reg
'reg'Świ'xKeyName' 'HKCU\Software\EuroManager\Palette' 'reg'Świ'xSubKeys' 'reg'Świ'xValueNames'
Position Newfield
'reg'Świ'XGetValue' 'Position'
16 40
˝'reg'Świ'XGetValue' 'Position'
5
'reg'Świ'XCreateSubKey' 'Demo'
70861808 1
'reg'Świ'xKeyName' 'HKCU\Software\EuroManager\Palette\Demo' 'reg'Świ'XSetValue' 'Num' 1234 'reg'Świ'XSetValue' 'Char' 'Character String'
'reg'Świ'XGetValue' 'Num'
1234
˝'reg'Świ'XGetValue' 'Num'
1+'reg'Świ'XGetValue' 'Num'
1235
'reg'Świ'XGetValue' 'Char'
Character String
The Palette registry key after using he Registry object

The Palette registry key after using he Registry object
The APL+Draw Object (apldraw.ocx)

APL+Draw gives the APL programmer a fast, powerful and flexible modern 2-D drawing library for use with their applications. Picking up where the APL+Win Draw method left off, APL2000 Draw not only runs faster and draws more accurately, but adds many exciting new features such as:

  • Transparency
  • Bezier curves
  • Transformations
  • Enhanced text handling
  • Anti-aliasing
  • Viewing & creating many graphic file formats such as bmp, png, jpeg and gif
  • Converting graphics files from one format to another (bmp to gif, etc.)
  • Catenating graphics files
  • Etc.

With just a few instructions, you can now do graphics work with APL+Draw which would have required a considerable amount of energy before!

© The following function takes a list of .GIF image files, all of © different sizes and builds one bitmap file with these images © converted to bitmaps of all the same size
’ CreateImageList warg;dir;ext;outputfilename;height;width;files;destfile [1] ©’ Creates a bitmap file suitable for an APL+Win <imagelist> property [2] ©’ warg „… dir ext outputfilename height width [3] ©’ dir: directory in which source graphics are stored [4] ©’ ext: source graphics file extension (one of: gif bmp png jpeg) [5] ©’ outputfilename: bitmap output file name prefix (example: 'ilist') [6] ©’ height: single output image height [7] ©’ width: single output image width [8] ©’ Note: creates a .BMP file in <dir> which name is: [9] ©’ <outputfilename><height>_<width>.bmp [10] ©’ Example: [11] ©’ CreateImageList 'c:\aplwin\simpa04\logos' 'gif' 'logos' 50 75 [12] [13] (dir ext outputfilename height width)„warg [14] dir„((-'\'=Ż1†dir)‡dir„DEB dir),'\' [15] ext„LOWERCASE'.',ext~' .' [16] files„DEB¨LOWERCASE¨Śsplit Ślib dir [17] files„((Ż4†¨files)­¨›ext)/files © files with the right extension [18] files„(›dir),¨files [19] Śwself„'draw'Świ'*Create' 'APL2000.Draw' [20] Świ'*scale'5 © pixel scale [21] Świ'*units'1 © pixels [22] Świ'*size'(width׆˝files)height [23] Świ'*xImageWidth'(width׆˝files) [24] Świ'*xImageHeight'height [25] :for I :in Ľ˝files [26] Świ'*XDrawImage'(Iśfiles)(width×I-1)0 width height [27] :end [28] destfile„dir,outputfilename,(•height),'_',(•width),'.bmp' [29] Świ'*XSave'destfile'=BMP'0(width׆˝files)height ’
A .GIF image file

A .GIF image file
Another .GIF image file

Another .GIF image file
Still another .GIF image file

Still another .GIF image file

CreateImageList'c:\aplwin\simpa04\logos2' 'gif' 'logos'28 75

The resulting .BMP file

The resulting .BMP file

CreateImageList'c:\aplwin\simpa04\logos2' 'gif' 'logos'50 125

The resulting .BMP file with 50 by 125 pixels images

The resulting .BMP file with 50 by 125 pixels images

The APL+Draw Object allows you to quickly program any kind of graphics, drawing texts, shapes, bitmaps, GIFs, JPGs, photos, adding shadows, rotations, inversions, gradients, pies, etc.

Here are a few examples:

© The following function draws shadowed text with blurred under-image
’ FigShadow;bits;wid;ht;text [1] © Illustrate shadowed text with blurred under-image [2] ŚWSELF„figDisp [3] [4] text„'APL' © Unicode escape characters for 'APL' [5] © Block out a scratch image and write the text in black [6] ŚWI 'Set' ('ImageWidth' 100)('ImageHeight' 60) [7] ŚWI 'CreateFont' 'TIBI' 'Times New Roman' 3 © Bold+Italic [8] ŚWI 'paperColor' (olc 255 255 255) [9] ŚWI 'FillText' 6 4 'TIBI' 36 text [10] © Grab the bits and split out any of the 3 colours [11] bits„60 100˝4śSplitBits 3śŚWI 'GetBits' © 0 Excl paper - Sept 2003 [12] © The 'blackness' is what we need to blur [13] bits„255-bits [14] bits„3+/3+šbits [15] bits„—128×bits÷—/,bits © Renormalise as integer [16] © Draw shadow in black, using this as opacity [17] ŚWI 'Set' ('ImageWidth' 230)('ImageHeight' 100)'Clear' [18] [19] bits„MakeARGB bits 0 0 0 [20] (wid ht)„˛˝bits Ş bits„,bits [21] © Doubling the size is fine here - blurs it nicely! [22] ŚWI 'DrawBits' wid ht bits 20 0 (wid×2)(ht×2) [23] [24] © Finally write the text on top [25] ŚWI 'CreateColorBrush' (olc 128 0 0) [26] ŚWI 'FillText' 20 0 'TIBI' 72 text [27] [28] MakeFile 'shadow.bmp' 0 230 100 96 ’
The Palette registry key after using he Registry object

The Palette registry key after using he Registry object
APL+Web Services

APL+WebServices (APLWS) is the Windows service that makes it easy to publish information on your intranet or the internet. APL+WebServices runs as a service. A service is a special program that runs in the background and performs certain tasks. The APL+WebServices not only receives HTTP requests but also activates other components such as APL Workspaces. APL+WebServices, for example, handles Web browser requests by sending requested Web pages back to the browsers. APLWS also provides the basis for providing web services to either clients or other servers, as well a providing a multi threaded communications layer for APL workspaces.

Security

APLWS provides users access only to the home directory specified in the setup for a server. All APL workspaces functionality is also only made available by specific configuration of the server.

Administration

Restarting APLWS: Now you can restart your Internet services without having to reboot your computer.

Configuration Options: You can set permissions for Read, Write, Execute, for each virtual directory or actual directory.

Centralized Administration: Administration tools for APLWS use the APL2000« Web Services Configuration interface. This interface makes it possible to add or modify virtual directories, servers and workspaces without stopping the APLWS service. This means that your server can run 24/7 while being updated. It is also possible to completely stop the APLWS service from the APL2000 Web Services Configuration interface should that be required.

The APL+Web Services Administration Console

The APL+Web Services Administration Console
Programmability

APLWS makes it possible to publish your existing APL applications to the internet using the APL2000 Web Services Configuration interface. It is now possible to have either a client or server interact with any of your functions without having to modify the APL function in any way.

APL2000 Workspaces: You can create dynamic content by creating virtual directories for browser-independent dynamic content. APLWS provides an easy-to-use alternative to CGI and ISAPI by allowing content developers to deploy their APL workspaces directly to the web. APLWS provides access to all of the HTTP request and response streams, as well as the ability to customize content for different browsers and servers.

Application Protection: APLWS 1.0 offers greater protection and increased reliability for your Web applications. By default, APLWS will run all of your applications in a common or pooled process which can be accessed in a many to many mode. In addition, you can establish a one to one relationship and a many to one relationship to your applications, depending upon application requirements.

Internet Standards

Standards Based: APL2000 APL+WebServices 1.0 complies with the HTTP 1.1 standard, including the ability to customize HTTP error messages, and support for custom HTTP headers.

JSaveSDK: Running APL Application within the browser

WARNING:
The JSaveSDK software is NOT part of APL+Win 5.0: however it is provided through Consulting Services with APL2000 and Lescasse Consulting


With APL+WebServices and JSaveSDK you can publish your APL applications on the Internet or Intranet and have them run within the browser. You use the JSaveSDK to publish functions from your workspace and you decide which instructions should run on the Client (in the browser) or on the Server (use: RunAtServer)

Publishing your APL application

Publishing your APL application

Once published use:

http://localhost:<port>/myAPLapp.htm

where <port> is the port number corresponding to your APL+Web Server and where myAPLapp.htm is the name of the HTML page generated by JSaveSDK, to test your APL application in the browser

A simple APL application running within Internet Explorer

A simple APL application running within Internet Explorer

 This entire Web site has been dynamically generated by APL+Win Objects™ 6.0
 For all questions contact:  info@lescasse.com
 Copyright © 2003-2005 Lescasse Consulting. All rights reserved.