NS Basic/CE Enhancements

March 01, 2010

© NSB Corporation. All rights reserved.

This is a release by release listing of all the changes to NS Basic/CE. To upgrade your copy to the latest version, visit our Upgrade Order Page.



  1. IDE: Command line compile option added. See docs below.
  2. IDE: PNG Icon will also be looked for in the .ico file folder.
  3. IDE: Setting Optionbutton Alignment to 2 (center) no longer gets an error.
  4. IDE: Preserve is highlited as a keyword.
  5. IDE: Label object now has visible property
  6. IDE: New version of exProperties control (
  7. Installer: Bug in link to program fixed when installDir<>program name.
  8. Installer: DirToInclude can now be a list of directories, so more than one can be installed.
  9. Installer: If installDir is not specified, Shortcut is now created properly.
  10. Installer: Installer file is now named with the app's Title property.

Documentation Changes for Version 8.2.0

  1. You can now compile an NS Basic program from the command line. The format is nsbasic programName -compile. The programName should be a full path. Example:
    c:\program files\nsbasic\ce\nsbasic "c:\my projects\sample.nsb" -compile


  1. Support added for Windows Mobile 6.5 Start Screen png icons.
  2. Tech Note 30 updated with information on WM 6.5 icons.
  3. Installer: Start Screen update no longer requires a reset in most cases.
  4. IDE: Error 91 when doing View Code fixed.
  5. IDE: Problems with application icon fixed.


  1. New Control: HTMLView. See Tech Note 42.
  2. IDE: Project now has Hi Res Aware property - see below.
  3. IDE: Project now has Dir To Install property - see below.
  4. IDE: Code Window: Now shows 16 lines in dropdown instead of 8.
  5. IDE: Extra blank lines are not longer added on each save.
  6. IDE: Form did not save Picture property.
  7. IDE: Loop is now highlighted as a keyword.
  8. IDE: Error 6 when selecting system color for gradient button fixed.
  9. IDE: Pocket PC VGA added to Option > Design Screen sizes.
  10. IDE: Bug when opening NS Basic/Desktop projects fixed.
  11. IDE: Better messages when object names are rejected in Properties.
  12. IDE: Error when pasting PictureBoxes and Gradient Buttons fixed.
  13. eVB2nsb: a number of enhancements have been made.
  14. Installer does not overwrite newer Basic.exe.
  15. Installer was deleting all files ending in .DAT
  16. New Function: SendMessageString - see below.
  17. PictureBox: DrawText was not sized properly on some devices (NSBCEPicturebox.ocx 1.3.2)
  18. Runtime: Fat executable now produced - see below.
  19. Runtime: Illegal character when loading program fixed.
  20. Runtime and IDE: Icon cleaned up.
  21. New Tech Note: 42 Using the HTMLview control
  22. New Sample: HTMLview

Documentation Changes for Version 8.1.0

  1. Hi Res Support: Some Windows Mobile devices have a screen size larger than 240x320. Devices with VGA screens are 480 x 640, for example. NS Basic/CE programs running on devices with different screen sizes have always looked exactly the same: the 240x320 coordinates are mapped on the VGA screen so everything is still in the same place and the screen completely filled.

    However, it is possible to use the extra pixels. By setting HiRes Aware to True in Project Properties, your program will treat the screen as it actually is 480 x 640. This will let you create smaller objects and smaller text.

    If you want your project to be Hi Res aware, but still run on regular devices, check output.height and output.width in your Form_Load routine. Adjust object bounds and font sizes if necessary.

  2. Dir To Install: Lets you specify a directory to be installed with your app. In Project Properties, you can now enter in the name of a folder in the project's directory. This folder (and its contents) will be included in the installer. It will be put into the home directory of your app on the device. This is a handy feature if you have a number of files to be included with your app, such as data, sounds or images: you no longer have to specify the name of each of these files.

  3. SendMessageString(): This function works just like SendMessage(), but allows a string as the last argument.

  4. Fat Executables: NS Basic/CE now produces a single exe file which contains the NS Basic runtime. While it increases the size of the program by about 200k, it eliminates the installation of \Program Files\nsbasic\Basic.exe, saving the same amount. One less directory is created in \Program Files and many registry entries are eliminated. The net result is a simpler installation. Launch times should also go down.

  5. Icons: To replace the default NS Basic icon in your app, create a .ico file and put its name into the Icon property in Project Properties. Which sizes are needed depending on what devices you are supporting. If you want to support all devices, you will need at least the following: 16x16, 21x21, 32x32, 43x43 and 64x64. A good free tool for making .ico files is IcoFX.


  1. Compiler: Projects with installer resources are smaller.
  2. IDE runs as Administrator so installer can be made.
  3. IDE: Bold on GradientButtons fixed.
  4. IDE: Changing platforms no longer requires resetting resource paths.
  5. IDE: CheckBox.Alignment can no longer be set to Center.
  6. IDE: Opening a sample project closes project already open.
  7. IDE: Paste Gradient Button fixed.
  8. IDE: Paths to resources in \Controls\ are no longer relative.
  9. New Sample: TeklogixScan for Teklogix devices.
  10. PictureBox 1.3.1 included
  11. PictureBox: Gradient Buttons now appear on older Window Mobile devices.
  12. PictureBox: Gradient Buttons now appear on Windows CE devices.


  1. Platform set properly in demo.
  2. Projects saved to root directory of a drive load OK now.
  3. Special characters are not allowed in pathname when creating installer.
  4. EULA and ReadMe in app directory no longer overwritten.
  5. F6 key now does Install App To Device.


  1. Embed pictures, sound and files as resources.
  2. Gradient Buttons give a slick look and feel to Apps.
  3. Automatic creation of device installers.
  4. Smaller executables - programs are up to 1/3 smaller than before.
  5. Smaller download - The complete NS Basic/CE is now just 15 megs.
  6. IDE: Alignment can now be set to center on some additional objects.
  7. IDE: More properties now have pickers.
  8. IDE: Now uses XP theme.
  9. IDE: Resources can be added to Project Explorer. (see below)
  10. IDE: Loaded apps go on recent files list, not just saved ones.
  11. IDE: New options to start program. (see below)
  12. IDE: New programs have "ShowOkButton True".
  13. IDE: New project properties for creating installers.
  14. Device IDE: Serial number automatically set on installation.
  15. Options: Square and landscape screen sizes added.
  16. Options: Device directory removed - now automatic.
  17. Options: New Installer screen (see below)
  18. NSCEPictureBox: ResourceBitmapIDstr added. (see below)
  19. NSCEPictureBox: Upgraded to Version 1.3.
  20. Runtime: New function: CreateShortcut. See below.
  21. Runtime: New function: GetResource. See below.
  22. Runtime: PlaySound can now play sounds that are saved as resources.
  23. Runtime: PictureBox can now display bitmaps that are saved as resources.
  24. Runtime: Error when exiting app on 6.1.4 devices fixed.
  25. Sample added: GradientButton
  26. Sample added: Resources
  27. Sample added: NetStreams (replacement for Microsoft's old Winsock)
  28. Samples: reorganized and cleaned up.
  29. Samples added to File menu.
  30. Help: Tutorials added to Help menu.
  31. Tech Note added: 41 Using Adobe Flash with NS Basic.
  32. Tech Notes 30 on installers completely redone.
  33. Tech Notes: some missing ones added.
  34. Installers: Support for devices before Windows CE 4.2 dropped.
  35. Installers: SQLite3 is now included.
  36. Installers: More modern look and feel, multiple language support.
  37. Installers: On recent devices, uninstalling one app will not affect others.
  38. Installation: Reduced from over 60 megs to 15.
  39. Installation: NS Basic/CE desktop installer now uses Inno Setup.
  40. Installation: Device controls are in \Program Files\nsbasic\CE\Controls
  41. Installation: Samples are in \My Documents\NSBasic Samples\CE
  42. Installation: The registry entry for .nsb has been corrected.

Documentation Changes for Version 8.0.0

  1. Gradient buttons: This new style of button gives apps a modern look and feel. The background color of the button transitions smoothly from one color to another, either vertically or horizontally. It is also useful as a background image. Complete details are in the Language Reference. See the "Gradient" sample as well.

    At this time, gradient buttons are supported by Windows Mobile 5 and newer devices.

  2. Options Installer Screen: This screen controls options for creating the installer. If you have a Windows Mobile device, you probably do not need to change them. There is more information in Tech Note 30.

  3. Starting a program: The options on the Run menu have changed.

    Start: Saves your work, creates an exe file that can run on the device, then creates an installer for it. If "Run Automatically" is set in Options, the installer is started.

    Update App on Device: Use this if your app is already installed on the device and you just want to update your program's exe. If "Run Automatically" is set in Options, the app is started.

    Install Device IDE: The Device IDE is install and its serial number is set. You only need to do this if you want to program on the device.

  4. Resources: Resources are files that are associated with your project, to either be installed in the program's folder or embedded directly in your exe file. For more information on files to be installed, see Tech Note 30. Embedded files are covered next...

  5. Embedding Files: You can now embed files in the main exe file, to be extracted and used and runtime. This results in a number of interesting possibilities:
    • Controls can be extracted, save as files and registered at runtime - simplifying or even eliminating the need for an installer.
    • Bitmaps can saved in the exe and displayed using a PictureBox - no separate file needs to be installed.
    • Sounds can be embedded in the exe and played, again without needing to install a separate file.
    • Store data for your program in the exe for use during runtime.
    To embed a file, add it as a Resource to the project. The GetResource function can be used to extract it, save it or register it.
  6. GetResource(Name[, [filename, register]])

    This powerful function allows you to do a number of things to resources contained in your app. The resources must already exist in your app: they must first be added in the IDE as Resources of type 'File' in the Project Explorer of the IDE.

    Use this function to:

    • Read the contents of a resource into a string in your program.
    • Copy the contents of a resource into a file.
    • Register and unregister controls.
    • Install an ActiveX control and register it.

    Complete documentation can be found in the Language Reference. See the "Resources" sample for more info.

  7. CreateShortcut(Shortcut name, target path)

    Creates a directory shortcut to an executable. Returns true if successful, false if it cannot create the shortcut or it already exists. The target path should include quote marks, so it can be parsed properly.


    'This will create a link in the Programs folder to your program.
    err = CreateShortcut("\Windows\Start Menu\Programs\My Test.exe", """" & currentPath & """")
  8. NSCEPictureBox.ResourceBitmapIDstr: This property gives the name of a bitmap (.bmp) resource to be displayed in a picturebox. The .ResourceFile property must also be set with the name of the file (an exe or dll) that contains the bitmap resource. It is similar to the .ResourceBitmapID resource, which only takes a resource number. The name must be in upper case.


    myPicturebox.ResourceBitmapIDstr = "GRADIENTBUTTON"
    See the "Resources" sample for more info.
  9. Support for older versions of Windows CE has been dropped: The installers for NS Basic were getting unncessarily complex: Windows CE devices as far back as 1996 were being supported. NS Basic/CE 8.0 supports devices using Windows CE 4.2 and later. Pocket PC 2003 and all Windows Mobile devices with touchscreens are supported, as well as Windows Mobile Embedded devices.

  10. Compatibility: NS Basic/CE 7 programs (and earlier) should load into NS Basic/CE 8.0 with no problem. NS Basic/CE 8.0 programs will not open in earlier versions, so keep a backup!

NS Basic/CE 7


  1. Code Window: Error 5 in Ctl F fixed.
  2. Code Window: Go To line number should always go to correct line now.
  3. IDE: Change tab order - fixed error 438 on exiting.
  4. Intermittant Error 429 messages after installation fixed.
  5. Missing objects on open project in Vista fixed.
  6. New Sample: API.InputBox
  7. New Sample: API.DialogBox creates a floating dialog box
  8. New TechNote 40: Differences between Visual Basic 6 (VB6) and NS Basic/CE


  1. Compiler: Encoding for characters 128-255 in exe files fixed.
  2. IDE: Doing Start after Make will start the exe file.
  3. IDE: Background grid on Design Screen draws properly on Vista
  4. IDE: End Select is properly colored
  5. IDE: Limit of 32k in TextBox.MaxLength property removed - will now be limited by Windows at runtime.
  6. Code Window: ListBox hints now include List and ListCount
  7. New ListBox property: SpinBox. See below.
  8. New Function: SendMessage sends OS messages. See Below.
  9. New Sample: SMS Send sends a text message from a phone device.
  10. Updated Sample: NewObjects has SpinBox.
Documentation Changes for Version 7.0.4
  1. ListBox.SpinBox property: Setting this new property to True will change the appearance of a ListBox to have arrows on the right side which can be used to cycle through the values. This feature is useful if you need a ListBox but have very limited screen space. See the NewObjects sample to see it in action. This feature will only work on Pocket PC devices.
  2. SendMessage(hwnd, uMsg, wParam, lParam) passes directly through to the Windows call of the same name. It's a very powerful function with all sorts of uses. Please consult Microsoft's API documentation for full information.


  1. Hardcopy Handbook and Language Reference now available auf Deutsch.
  2. ActiveX Control Manager: Copy to Clipboard now works reliably.
  3. Code Window: 'End Property' highlights properly.
  4. Code Window: Date property displays for Date and Time objects.
  5. Code Window: More keywords and constants colored.
  6. IDE: Tools Menu: now accepts links in \program files\nsbasic\CE\tools
  7. IDE: Changes are saved after each replace.
  8. IDE: Error when setting invalid value to Appearance property fixed.
  9. IDE: Espaņol can now be selected in Tools...Options. (Thanks, Jose Adell!)
  10. IDE: German Language Reference file converted to .chm for Vista
  11. IDE: Japanese Language Reference file converted to .chm for Vista
  12. IDE: Start Menu: Link is to new Help file.
  13. IDE: The last item on a menu can now be deleted.
  14. IDE: When opening a .txt file, existing .nsp with same name is ignored.
  15. IDE: Incorrect message on opening menu fixed.
  16. Runtime: Declare Sub now works properly.
  17. RuntimeFat installers now register NSBWin32 properly.
  18. ShowFullScreen fixed. ShowFullScreen True/False


  1. Exe files now handle extended characters properly.
  2. Some ActiveX objects were disappearing from programs on reload.
  3. Redundant code was being added to the Generated Code section.
  4. Some objects were not generating events on older (pre CE 4.0) devices.
  5. Modules can open properly in Windows 98.


  1. Virtual CE only shows on the Tools menu if it is in the Tools folder.
  2. String and Color constants are now colored as keywords.
  3. WaveVolume function added to docs.
  4. NSExecute statement added -- see below.
  5. ActiveX events on subsequent forms fixed.
  6. DECLARE: now supports underbar character in function names.
  7. Language Reference updated.
Documentation Changes for Version 7.0.1
  1. NSExecute Statement: NS Basic/CE has always had an Execute statement. MIcrosoft has added an Execute (and ExecuteGlobal) statement of their own to VBScript (copying us?) Now that we are using VBScript 5.6, Microsoft's function will be called instead of NS Basic/CE's. If you want to continue to use NS Basic/CE's version of the function, use NSExecute instead of Execute.

    In most cases, Execute will do as you expect. If you are using it in a subroutine, any variable or subroutine you create will only be around while you are in the subroutine. If you want the variable or subroutine to stick around after your function ends, then use ExecuteGlobal.

    The difference we have found with NSExecute is that AddObject statements are able create objects that send events back to your program.


  1. Windows Vista support added.
  2. Support for Windows Embedded CE 6.0 devices added.
  3. Language enhanced with Classes and Regular Expressions.
  4. ActiveX Controls: ToolBox now shows new controls.
  5. ActiveX Controls: ActiveX Control Manager now shows all coClasses of controls.
  6. ActiveX Controls: New controls are in the default list in ActiveX Control Manager.
  7. ActiveX Controls: Microsoft's CE controls now have their own installers: MSCEControls. See below.
  8. ActiveX Controls: New SerialTools control, replacing MSCEComm.dll. More robust, BlueTooth support added. See Tech Note 5.
  9. ActiveX Controls: New NSBComDlg.dll control, replacing the buggy MSCEComDlg control. See Tech Note 4.
  10. ActiveX Controls: New NSBControls.dll control, replacing MSCEListView.dll and MSCEImageList.dll. See Tech Notes 11 and 12.
  11. ActiveX Controls: NSBWin32.dll replaces MGCEWin32.dll. See Tech Note 16.
  12. ActiveX Controls: New SQLite 3 Control, replaced SQLite 2. See Tech Note 15.
  13. ActiveX Controls: ActiveX Control Manager - Entries were getting lost if there were too many.
  14. Compiler: Exe files now support Japanese and other multi byte languages.
  15. Device Installers: 'ARM42' installer renamed 'WinCE' to more accurately reflect the devices supported.
  16. Device Installers: Install to \%ce1%\ instead of Program Files. Works better on non-English systems.
  17. Device Installers: Symbol MC3000 fixed.
  18. Documentation: Date Object: It should be LongFormat, not FormatLong.
  19. Documentation: Handbook updated extensively.
  20. Documentation: Help file format changed from hlp to chm format.
  21. Documentation: New Tech Note 19 on Regular Expressions.
  22. Documentation: New Tech Note 29 on Classes.
  23. Documentation: New Tech Notes on SerialTools (05), SQLite3 (15), NSBComDlg (04), ListView (12), ImageList (11).
  24. Documentation: Tech Notes renumbered.
  25. Documentation: ReadMe is now on the Help menu - people might read it!
  26. IDE: Code Window: Lines ending in _ are syntax checked properly.
  27. IDE: Code Window: Loop is syntax checked properly.
  28. IDE: Code Window: More keywords are colored.
  29. IDE: Code Window: Intrinsic controls now show hints for methods as well as properties.
  30. IDE: Setting Frame.Visible is set to false in IDE fixed.
  31. IDE: PictureBox.Picture no longer brings up a file browser.
  32. IDE: Problem with opening projects on network drives fixed.
  33. IDE: PropertiesList control updated - more properties show for ActiveX objects.
  34. IDE: Save will always save as .nsb, unless you use Save as TXT option.
  35. IDE: Scrrun.dll is no longer used - less complaints from anti-virus software.
  36. Language: New GetRef function - See Language Reference.
  37. Language: New Class Object - See Language Reference.
  38. Language: New Escape, Unescape Functions - See Language Reference.
  39. Language: New ExecuteGlobal function - See Language Reference.
  40. Language: New GetLocale, SetLocale function - See Language Reference.
  41. Language: New With statement - See Language Reference.
  42. Language: New SpecialFolder function. See below.
  43. Runtime: Declare handles underscore properly.
  44. Runtime: Max number of args on a DECLARE increased from 10 to 20.
  45. Runtime: Memory leak on non Windows Mobile devices fixed.
  46. Runtime: Runtime error messages show properly on WCE devices.
  47. Runtime: Change event on Textbox fixed again.
  48. Virtual CE is no longer distributed with NS Basic/CE. (See Below)
Documentation Changes for Version 7.0.0
  1. New Controls: We have added a number of new controls to this release, replacing the old Microsoft CE controls, which have not been updated since 2000 and are no longer supported. The new controls have additional features and fix bugs, while supporting as much of the same feature set as possible.
  2. IDE: Errors in Form_Load are now handled properly. Until now, if you had an error in a Form_Load routine, the routine would exit silently and continue execution. Version 7 fixes this for device running Windows CE 4.0 and newer. As a result, applications that seemed to be working may now raise errors which are finally being reported properly.
  3. Virtual CE made it easier for people to develop NS Basic programs by putting a live image of a connected CE device on the desktop. Now that Microsoft has a good Device Emulator (see the Tech Note), there isn't as much need for it. If you would like to continue to have this feature, you have 3 options:
    1. From your NS Basic/CE 6 installation, make a copy of \Program Files\nsbasic\ce\tools\v_ppc.exe. From your device, get the file \Program Files\nsbasic\v_remote.exe. Put them back into the same locations after installing NS Basic/CE 7.0. The Start Virtual CE option will reappear on the Tools menu.
    2. Get a copy of the full version from Handango. It has many features not in the Lite Edition, for $19.95 USD.
    3. Use the Remote Display Control for Pocket PC, free from Microsoft: <http://www.microsoft.com/technet/prodtechnol/wce/downloads/ppctoys.mspx>
  4. MSCEControls: While a number of the Microsoft CE controls have been replaced by new controls, they are still available. The MSCEControls installers for PPC, HPC and WIndow CE install the complete set on your device. You only need this installer if you are using old controls that have been replaced.
  5. New Function: SpecialFolder(ID [,true]) Get special folder names. If True is added, the folder will be created if it does not exist. This function allows you to use the proper folder names at runtime on devices in languages other that your own, and to prepare for future devices. This function is supported on Windows CE 3.0 and later devices.
    MsgBox SpecialFolder(0h0006) 'displays \My Documents on English Pocket PC

    ID values are:

    • APPDATA &h001A File system directory that serves as a common repository for application-specific data.
    • DESKTOP &h0000 Not supported on Smartphone.
    • DESKTOPDIRECTORY &h0010 File system directory used to physically store file objects on the desktop (not to be confused with the desktop folder itself).
    • FAVORITES &h0006 The file system directory that serves as a common repository for the user's favorite items.
    • FONTS &h0014 The virtual folder that contains fonts.
    • MYMUSIC &h000d Folder that contains music files.
    • MYPICTURES &h0027 Folder that contains picture files.
    • MYVIDEO &h000e Folder that contains video files.
    • PERSONAL &h0005 The file system directory that serves as a common repository for documents.
    • PROFILE &h0028 Folder that contains the profile of the user.
    • PROGRAM_FILES &h0026 The program files folder.
    • PROGRAMS &h0002 The file system directory that contains the user's program groups, which are also file system directories.
    • RECENT &h0008 File system directory that contains the user's most recently used documents.
    • STARTUP &h0007 The file system directory that corresponds to the user's Startup program group. The system starts these programs when a device is powered on.
    • WINDOWS &h0024 The Windows folder.

NS Basic/CE 6


  1. IDE: Subscript error on Find fixed.
  2. IDE: Saving a module to a different folder no longer changes the project folder
  3. IDE: Module names are saved using relative paths.
  4. IDE: Doing a Replace now marks code as dirty so it will be saved.
  5. IDE: Setting the module order of a project without modules no longer gets error.
  6. IDE: Missing properties for Frame and TextBox added to Properties Window.
  7. IDE: AppTitle assignment now done at correct point.
  8. IDE: Control V for undo shortcut added
  9. Code Window: Syntax is checked as lines are entered.
  10. Code Window: Go To Line... now goes to the correct line in the main module
  11. Code Window: CodeMax control updated to
  12. Code Window: KeyPreview now highlights properly
  13. New Tech Note: 16 Creating installers using e-Pocket Express
  14. eVB2NSB: frm.Hide, frm.Show and frm.Caption translation improved.
  15. Runtime: Listbox.Borderstyle fixed.
  16. Runtime: The .exe extension on executables is no longer case sensitive
  17. Runtime: ComboBox.Change event now gets fired.
  18. Runtime: List.List can now be set (was read only before)
  19. Runtime: New function: SpecialFolder
  20. eVB2NSB: form properties checked more closely
  21. eVB2NSB: Bug causing "Dim" in front of some variables fixed.
  22. eVB2NSB: Expressions of form.object.property changed to object.property
Documentation Changes for Version 6.5.3
  1. New Function: SpecialFolder(ID [,true]) Get special folder names. If True is added, the folder will be created if it does not exist. This function allows you to use the proper folder names at runtime on devices in languages other that your own, and to prepare for future devices. This function is support on Windows CE 3.0 and later devices.
    MsgBox SpecialFolder(0h0006) 'displays \My Documents on English Pocket PC

    ID values are:

    • APPDATA &h001A File system directory that serves as a common repository for application-specific data.
    • DESKTOP &h0000 Not supported on Smartphone.
    • DESKTOPDIRECTORY &h0010 File system directory used to physically store file objects on the desktop (not to be confused with the desktop folder itself).
    • FAVORITES &h0006 The file system directory that serves as a common repository for the user's favorite items.
    • FONTS &h0014 The virtual folder that contains fonts.
    • MYMUSIC &h000d Folder that contains music files.
    • MYPICTURES &h0027 Folder that contains picture files.
    • MYVIDEO &h000e Folder that contains video files.
    • PERSONAL &h0005 The file system directory that serves as a common repository for documents.
    • PROFILE &h0028 Folder that contains the profile of the user.
    • PROGRAM_FILES &h0026 The program files folder.
    • PROGRAMS &h0002 The file system directory that contains the user's program groups, which are also file system directories.
    • RECENT &h0008 File system directory that contains the user's most recently used documents.
    • STARTUP &h0007 The file system directory that corresponds to the user's Startup program group. The system starts these programs when a device is powered on.
    • WINDOWS &h0024 The Windows folder.


  1. IDE: Recent files on a drive that is not longer mounted are now ignored.
  2. IDE: Saving a program as .nsb after saving as .txt fixed.
  3. Runtime: Array handing on DECLARE arguments improved.
  4. eVB2NSB: Fixed problem with line breaks on long lines


  1. Runtime: Changing BorderStyle no longer generates a _Change event.
  2. Installers: Basic installers now includes latest samples.
  3. Installers: Support added for MIPSII devices.
  4. IDE: Opening of some large projects made much faster.
  5. IDE: Code for ComboBox.IntegralHeight was not generating properly.
  6. IDE: Generated boolean values were sometimes incorrect. See below.
  7. IDE: German string table updated (Danke, Thomas Gruber!)
  8. eVB2NSB: Lines with continuations are combined so they parse properly.
  9. eVB2NSB: Converts Declare properly.
  10. eVB2NSB: Create objects in same order as eVB.
  11. eVB2NSB: Fix Error 5 problem with App settings.
  12. eVB2NSB: Notes that ZOrder property is not supported.
Documentation Changes for Version 6.5.1
  1. A longstanding bug in controls creation was fixed in this update. It occurs only on systems running a localized version of Windows other than English. On these systems, the native language words for True and False were used in the generated code for some properties instead of the actual words. For example, CheckBox.Enabled would be set to Falsch instead of False on a German system.


  1. Support added for Code Modules
  2. Declare statement added
  3. New Tech Note: 37 DECLARE: Calling API functions
  4. New control: NSBWin32 replaces MGCEWin32
  5. New Tech Note: 36 Using Symbol Devices
  6. ADOCE.WM5.exe installer added
  7. New Samples: Declare.nsb and Declare2.nsb
  8. New Sample: Symbol.nsb
  9. Samples: Nearly all have been updated and cleaned up.
  10. New property: Output.ParentHWnd
  11. NSCEPictureBox control updated
  12. Properties Window: Vertical splitter is now movable
  13. Properties Window: A variety of Error 380 and 13 messages fixed.
  14. Properties Window: Changing width of form no longer gets Error 91.
  15. Properties Window: Interior lines show in window.
  16. Properties Window: Error 91 when editing properties on closed window.
  17. Properties Window: New objects default to default height of 21 pixels.
  18. GWES error on exiting app from another process fixed.
  19. IDE: Format...Center in form work properly on custom forms.
  20. IDE: Menu Editor: Invalid Property Array Index error fixed.
  21. IDE: "Main" is no longer allowed as a form name
  22. IDE: Quotes (") in title, caption and text fields are now OK.
  23. IDE: Duplicate object names are not allowed.
  24. IDE: Delete too often in menu editor does not cause an error.
  25. IDE: PictureBox can be copied and pasted.
  26. IDE: Changing tab order redraws window display
  27. IDE: Changing width of form to 200 no longer gets Error 91.
  28. IDE: Opening a non existing file on recent list does not get an error.
  29. Code Window: Bug in WEND coloring fixed.
  30. Code Window: Bug in If/Then coloring fixed.
  31. Code Window: Keywords within parentheses are now colored properly.
  32. Code Window: ShowOkButton now colors properly
  33. Code Window: SubColor=1 will no longer cause "End Sub" to appear.
  34. Code Window: Goto on a new code window no longer gets error.
  35. Code Window: Backspace at end of code window longer gets error.
  36. Code Window: Bugs fixed in Find/Replace.
  37. Code Window: Error 5 on Go... fixed.
Documentation Changes for Version 6.5.0
  1. A module is a file containing code that is to be included in your program when it is run. It can be a .txt, .bas or .cod file. Modules let you separate your code into more manageable chunks. You can also use module to reuse the same code in more than one project: a module can belong to more than one project.

    To add a module to a project, choose either Add Module from the Project menu or right click on the project in the Project Explorer. Modules are added to your program in the order they appear in the Project Explorer. If you want to change the order in which they are compiled, right click on the project in the Project Explorer.

    Internally, the modules are added to the project code in the order specificed before compilation. You can put DIM statements, subroutines, functions and code into a module. If you would like to see the actual code that will be compiled, save the project as a txt file and open it in NotePad.

    Running a program with modules is the same as one without. If you choose Start under the Run menu, a .nsb file will be produced that combines your main project code with all your modules.

    You can also choose Make under the File menu. In this case, a .exe file will be produced that will run on Pocket PC devices. It will be named the same way as the .nsb file is.

  2. The Output object in has a new read-only propery: ParentHwnd. This returns the parent window of the Output window. It is useful for many system routines that require a window. The following example displays a popup menu on NSBasic CE, using the Output.ParentHwnd property.

    AddObject "CommandButton", "cb1", 10, 10, 100, 20
    cb1.caption = "Menu"
    Declare "Function CreatePopupMenu Lib ""Coredll"" () As Long"
    Declare "Function AppendMenu Lib ""Coredll"" Alias "AppendMenuW"" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As String) As Long"
    Declare "Function TrackPopupMenuEx Lib ""Coredll"" (ByBal hMenu As Long, ByVal un As Lont, ByVal n1 As Long, ByVal n2 As Long, ByVal hWnd As Long,lpTPMParams As Long) As Long"
    Const TPM_RETURNCMD = $H100&
    Const MF_ENABLED = &H0&
    Const MF_STRING = &H0&
    Const MF_GRAYED = &H1&
    Const MF_SEPARATOR = &H800&
    Sub cb1_Click
        Dim ret
        Dim hMenu
        hMenu = CreatePopupMenu
        AppendMenu hMenu, MF_ENABLED Or MF_STRING, 1, "Option 1"
        AppendMenu hMenu, MF_ENABLED Or MF_STRING, 2, "Option 2"
        AppendMenu hMenu, MF_ENABLED Or MF_STRING, 3, "Option 3"
        AppendMenu hMenu, MF_GRAYED Or MF_SEPARATOR, 4, ""
        AppendMenu hMenu, MF_ENABLED Or MF_STRING, 5, "Fuhgettaboutit"
        ret = ShowPopupMenu(0, 0)
        MsgBox ret
    End Sub
    You must use the ParentHWnd property because under Windows Mobile 5, attempting to display a popup menu using Output.Hwnd causes undesirable results. This appears to be unique to Mobile 5 and does not occur on earlier devices.

    You can also present popup windows under NSBasic Desktop by using the Output.Hwnd property, provided that the appropriate core DLL is installed on the system.

    If you are writing code that is to run under both NSBasic CE and NSBasic Desktop, you can take advantage of the fact that Output.ParentHwnd is always 0 under NSBasic Desktop.

    1. Check the value of Output.ParentHwnd.
    2. If it is zero, the program is running on the desktop. Use
    3. Output.Hwnd.
    4. If it is not zero, the program is running on a CE device. Use Output.ParentHwnd.


  1. SQLite Support added!
  2. New Sample: SQLite
  3. New Tech Note 34: Using SQLite
  4. New Tech Note 34a: SQLite Reference
  5. AXPack installer includes SQLite, NetStreams and much more
  6. eVB2NSB: Version 2.1.5 put Appdata in proper location
  7. Runtime: gwes.exe error fixed on exiting
  8. OptionButton events fixed


  1. EXE Files: Reduced in size by half - now much smaller than .NSB files.
  2. Symbol MC3000 now supported.
  3. Output_Close enhanced. See docs below.
  4. TcpIpClient sample updated.
  5. Icon and other project data now saved in new .NSP file
  6. NSCEPictureBox.dll is now named NSCEPictureBox.ocx
  7. PictureBox: ScaleModes now work.
  8. PictureBox: Events work properly.
  9. PictureBox: TapAndHoldEventEnabled property added. Must be set for this event to be trapped.
  10. PictureBox: Version is now 1.11.
  11. PictureBox: VersionMajor, VersionMinor properties now supported.
  12. PictureBox: "Slow Path" message removed from RotateImage
  13. Error 429 on Windows 98SE and Windows ME fixed.
  14. MsgBox statements in Output_Close and Output_Size no longer hang.
  15. While...Wend highlights properly.
  16. ABS function is now colored properly.
  17. AddObject hint corrected.
  18. Moving the left bar of the Project Explorer too far right fixed.
  19. Moving the bar between Explorer and Properties too far down fixed.
  20. Runtime: OptionButton on Windows Mobile 5 devices changed. See docs below.
Documentation Changes for Version 6.0.4
  1. Output_Close: (Pocket PC) This event is sent to a program if ShowOKButton = True. You can do normal processing here, including MsgBox statements. The program will not actually exit unless you have a Bye statement in the subroutine. (Note that is a change from previous versions). If ShowOKButton = True and you do not have an Output_Close subroutine, the program will exit. If ShowOKButton = False, the operation will be as always: the program will keep running, but the next program in the hierarchy will appear on the screen.
  2. Output_Size: This event is sent when the size of the screen changes, when the orientation is changed, when the X is tapped wih ShowOkButton=False or at a number of other times that Windows CE feels like it. It's a good idea to keep the previous value of this to see if the size of the screen has actually changed before taking any action.
  3. EXE files: EXE files are now approximately half the size as before, and also about half the size of the same program saved as a .NSB file. For example, in testing a 97k NSB turned into a 45k EXE.

    Note that EXE files are only produced for ARM devices, primarily Pocket PC. This includes Windows Mobile 5 and Pocket PC 2003. EXE files will not run on devices that use SH3 or MIPS processors. If you make an EXE file using NS Basic/CE 6.0.4, make sure your runtime is also 6.0.4.

  4. The Groups property of the OptionButton, as implemented in the Windows Mobile 5 operating system, does not work properly. As a result, we've had to modify our code to ignore the Groups setting at runtime on Windows Mobile 5 only. You will need to manage the setting of other Optionbuttons in a group within your code.


  1. Support added for Windows CE ARM 920T devices, such as Advantech.
  2. Runtime: You can now change the Titlebar at runtime by setting value of AppTitle.
  3. Runtime: ListBox has new Columns property (See below)
  4. eVB2NSB: Correctly parses literal strings with embedded : characters
  5. eVB2NSB: Conversion Messages are also written to Conversion Messages.txt.
  6. eVB2NSB: No longer gets Serial Number not Found on opening in NS Basic/CE.
  7. EXE apps are now smaller - whitespace and comments are stripped.
  8. Desktop IDE: Error 5 on (Go to...) fixed.
  9. Desktop IDE: Double click on a control in Explorer no longer causes Error 438
  10. Desktop IDE: Double find and replace no longer causes an error
  11. Desktop IDE: Opening of very old projects improved
  12. Desktop IDE: Changing Project Properties now marks project as dirty.
  13. Desktop IDE: Save before Run setting now shows properly in Settings.
  14. Desktop IDE: Icon gets saved properly
  15. Desktop IDE: Programs with more than 32,767 lines open properly.
  16. Runtime: Textbox.BorderStyle=1 now works on WM5 devices
  17. Runtime: EXE apps no longer show '.exe' in the titlebar.
  18. Runtime: Programs no longer need an extra click at startup.
  19. Runtime: Multiple EXE apps can be run at the same time.
  20. Device IDE now installed into \program files\nsbasic (not 'ns basic')
  21. RuntimeFat installer message change to show correct version number.
  22. EZSetup now installed in the \installers folder.
  23. Device IDE: On devices with narrow screen, the toolbar is now properly sized.
  24. VNSB fixed on 42ARM devices
  25. .exe files run properly on systems with just Runtime installed.
  26. Index of TechNotes was pointing to the wrong file.
  27. Winsock sample updated.
Documentation Changes for Version 6.0.3
  1. To change the value of the title of an app, set the AppTitle variable to what you want. Do not DIM the AppTitle variable name.
         AppTitle = "My Program"
  2. The columns property of the ListBox control returns and sets a value that determines whether a ListBox control scrolls vertically or horizontally and how the items in the columns are displayed. If the ListBox control scrolls horizontally, the Columns property determines how many columns are displayed.
  3. When you create an EXE file, all comments and extra white space are stripped from your code. It results in a smaller program.


  1. Now you can make .exe files with your own icons!
  2. Right menu in Code Window enhanced with new features, including Block Comment
  3. When you restart Device IDE, the last program you were working on will reload
  4. Error 91 on File menu with no project fixed.
  5. Form object now shows properties in code window (instead of Error 380)
  6. VNSB.exe was not opening properly from Basic.exe
  7. Register.bat updated for new controls
  8. Resizing objects in Properties Window works properly again
  9. Device IDE Help file updated
  10. Desktop IDE function hints updated.
Documentation Changes for Version 6.0.2
  1. Executables: You can now create an .exe file with your own icon from your NS Basic/CE program. Select "Make..." under the File menu to do this. Specify your icon under "Icon" property in Project Properties. The resulting .exe file will be saved in the same directory as the current project. It will contain all your program code and can be executed by clicking on it on the device: put it in \Windows\Start Menu]\Programs to see it on the Pocket PC menu. NS Basic/CE exe files will run on any ARM device which has the NS Basic runtime files installed.

    The icon must be a valid Windows .ico file. It should have 32x32 and 16x16 icons in it. The number of bits per pixel does not seem to matter.


  1. Windows 98 SE now installs properly
  2. PictureBox no longer has 'expired' message on some systems.
  3. "Member not found" message on opening project fixed.
  4. Opening converted eVB projects improved.
  5. "Serial Number not entered" message on opening project fixed.
  6. Grid lines on Windows XP fixed.
  7. PictureBox on HPC 2000 devices now installs properly.
  8. Device IDE now has File...Exit menu option.
  9. Device IDE OK button saves current program and exits IDE
  10. Device IDE Open dialog now properly sized on Windows Mobile 5
  11. Code Window keyboard command settings are now preserved.
  12. Setting PictureBox.Scale* properties at runtime no longer causes an error (but they don't do anything yet either).


  1. Windows Mobile 5 Pocket PC devices supported.
  2. New PictureBox control called NSCEPicture. Replaces MSCEPicture and S309PictureBox.
  3. NSCEPicture now used as base container for forms. This adds a lot of functionality!
  4. Tech Note 7 extensively revised for new PictureBox.
  5. Microsoft Device Emulator Preview supported.
  6. Tech Note 35 explains how to install and run the Emulator.
  7. Desktop IDE: Code sense on objects
  8. Desktop IDE: Code Hints
  9. Desktop IDE: Block comment/uncomment
  10. Desktop IDE: Lines now appear in code window separating funcs and subs
  11. Device IDE: Font size in code window can be changed in Settings...System...Screen...Text Size on hi res devices.
  12. New Function: GetSerialNumber(). See docs below.
  13. AddObject can now create licensed objects. See docs below.
  14. Language Reference updated, many corrections made.
  15. eVB2NSB updated.
  16. Removed size event at program start
  17. Basic.exe for PPC 2003 SE is now compiled with eVC4.
  18. Menus no longer have a character cut off at the end of the generated code
  19. New project, View Code, Find "gh" --> Error -214... FIxed.
  20. Setting Checkbox's alignment to 2 gets Error 380. OptionButton too. Fixed.
  21. When you close a Find box, focus goes back to code window.
  22. Grid lines in Properties show properly in WinXP
  23. Virtual CE updated for WM5
  24. Edit/OverView clears properly if you start a new program.
  25. Starting a second app using File Explorer no longer brings up already running app.
  26. TextBox.Locked property works properly.
  27. OptionButton.Group now works properly.
  28. Installer for .NET 4.2 devices now puts VBScript in the right folder
Documentation Changes for Version 6.0.0
  1. GetSerialNumber(): This new function returns a string with the device serial number, for devices that have a unique serial number. It is most likely to appear in devices starting with the Pocket PC 2002.
  2. AddObject: The first argument, objectID, now lets you append a license number in the form "objectID:licenseNumber"

NS Basic/CE 5


  1. Device IDE: Button press now highlights properly.
  2. Desktop IDE: Object reorder updates Project Explorer.
  3. Desktop IDE: New version of PropertyList control.
  4. Sigmarion III support added.
  5. TCPClient sample added.
  6. NewObjects sample updated.
  7. Help now called "Language Reference".
  8. Various Tech Notes updated.
  9. Textbox scrollbars fixed. (5.1.2a)
  10. Scrollbar objects as child objects fixed. (5.1.2a)


  1. Width of Time and Date objects now set properly on load.
  2. BackColor of intrinsic objects now explicitly set in generated code.
  3. If unknown font is encountered on load, it is changed to Tahoma.
  4. Project Explorer now expands objects within a frame.
  5. All objects now appear in Project Explorer.
  6. Renaming an object updates the Project Explorer.
  7. Error 91 when deleting object fixed.
  8. Background color on Labels fixed when loading projects.
  9. Background color on Frames fixed when loading projects.
  10. ComboBox.Height and ExtendedHeight set properly when loading projects.
  11. Application constants now work properly with CHAIN to a Forms app.


  1. Support added for CE.NET 4.2 ARM devices
  2. Installer for Windows Mobile Second Edition no longer says "built for a previous version".
  3. IDE: Help renamed "Language Reference"
  4. IDE: Properties control updated.
  5. IDE: Property Window now sizes properly at the bottom.
  6. IDE: Property Window now saves value properly without clicking on another field.
  7. IDE: Snap to Grid fixed.
  8. IDE: Setting label caption to blank works properly.
  9. IDE: Code window ignores PUBLIC or PRIVATE in sub and function names in popup.
  10. IDE: Copyng a control preserves the Alignment property.
  11. IDE: Backcolor of a Label object is now gray, not white.
  12. IDE: Keyword coloring fixed for a number of items.
  13. IDE: Go to line number added to code window popup
  14. IDE: FireFox browser now supported from IDE.
  15. IDE: Correct icons appear in Toolbar for ActiveX controls.
  16. IDE: ActiveX Control Manager now appears under Tools menu.
  17. IDE: Form backcolor now set properly.
  18. IDE: Form display now happens after it is completely created.
  19. IDE: ActiveX controls on all forms now get events properly.
  20. IDE: Font on Properties window changed to MS Sans Serif
  21. IDE: Project Explorer now shows objects within a form.
  22. eVB2NSB: A number of improvements made. Now version 2.1.
  23. Register.bat: new version registers more controls
  24. ActiveX controls on subsequent forms now send events properly.
  25. New Samples: TCPClient, TCPServer (NS Basic/Desktop and VB6 versions)
  26. New Sample: TwoForms
  27. New Tech Note 32: Scrolling Grids
  28. New Tech Note 33: Devices Supported
  29. New Tech Note 34: Using SQLite


  1. IDE: Bug in Find/Replace fixed.
  2. IDE: Error 735 on generate code fixed.
  3. IDE: Error 735 when deleting a Frame object fixed.
  4. IDE: Error 91 when clicking on a grid object fixed.
  5. IDE: Error 91 when viewing code on a textbox on a frame fixed.
  6. IDE: Internal code reorganized.
  7. IDE: Opening a formless app opens code windows automatically.
  8. Runtime: TextBox.password property fixed.
  9. eVB2NSB updated.


Here is a list of all the changes to NS Basic/CE 5.0.2.
  1. Desktop: Copying programs to the device is faster.
  2. Desktop: Default background color of CheckBox and OptionButton fixed.
  3. Desktop: Error 380 when switching Windows Regions fixed.
  4. Desktop: Error 735 on Start fixed.
  5. Desktop: Load of text file now shows text of bad statements.
  6. Desktop: Multibyte languages (Japanese and Chinese) now work properly.
  7. Desktop: Non visible controls no longer show at run time.
  8. Desktop: Now available in German.
  9. Desktop: Print listing of program fixed.
  10. Desktop: Serial number on device can be set in Desktop IDE Registration screen.
  11. Desktop: The Code Window now has a picker to go to a selected subroutine.
  12. Desktop: When creating a new app, you have a choice of Standard and Formless.
  13. Documentation: Output object closed sends Output_Close event, not Form_closed.
  14. New Sample: FileBrowse demonstrates ImageList, File and FileSystem controls.
  15. Tools: eVB2nsb updated and greatly improved.
  16. Tutorials: Redone.


Here is a list of all the changes to NS Basic/CE 5.0.1.
  1. Device: FullScreen sample now included.
  2. Help: English help can now display contents.
  3. HPC 2000: Menus and stop button appear at runtime.
  4. IDE: Colors of objects now set properly.
  5. IDE: Form object no longer shows text property
  6. New Event: All intrinsic controls now have a KeyDown keycode, shift event.
  7. New Event: All intrinsic controls now have a KeyPress char event
  8. New Event: All intrinsic controls now have a Keyup keycode, shift event
  9. New Event: All intrinsic controls now have a LostFocus event.
  10. System.exe and Script.exe installers added to CD.
  11. VPC Lite: "Error loading Skin Images" message fixed.
  12. VPC Lite: Device show IP address being used.
  13. VPC Lite: Improved message on connecting
  14. VPC Lite: Now works on HPC 2000 devices


Here is a list of all the changes to NS Basic/CE 5.0.0. All new statements are documented in the Help menu in the desktop IDE.
  1. Support for Windows Mobile 2003 Second Edition added.
  2. New ActiveX controls included: MGCEWIn32, MGCEBarsNPops, MGCEListView, MGCEMail, MGCENet, MGCERichEdit, MGCERichInk, MGCETreeView
  3. New Output Event: Output_Size is sent if screen size is changed (from rotation).
  4. New Statement: DoEvent checks for and executes any system events (keypresses, etc)
  5. New Statement: GetCommandLine gets the command used to start the program
  6. New Statement: RunAppAtEvent launches a program at a system event
  7. New Statement: RunAppAtTime launches a program at a given time
  8. New Statement: SendKey sends characters as if hit on keyboard
  9. New Statement: SetParent (see docs below)
  10. New Statement: SetWaveVolume sets main volume control of device
  11. New Statement: ShowFullScreen conrols screen display
  12. New Statement: ShowOKButton controls OK button on top bar
  13. New Global: AppHwnd contains window handle for current app (See below)
  14. New Sample: FullScreen.nsb
  15. New ComboBox properties: lowercaseOnly, Redraw, TopIndex, UppercaseOnly
  16. New CommandButton: property: Default
  17. New Label property: UseMnemonic
  18. New ListBox properties: MultiSelect, Redraw, SelCount, Selected, TopIndex
  19. New TextBox properties: HideSelection, Locked, LowercaseOnly, NumbersOnly, Password, UppercaseOnly
  20. Device: Characters>127 fixed on download to device. This will fix problems with umlaut, ¨, euro character, etc.
  21. Device: Programs that are saved shorter that previous length can be loaded successfully.
  22. Device: AddObject can now name a parent control. See docs below.
  23. Device: Controls like Grid and PictureBox can now be hidden. See docs below.
  24. Device: Error in single step debugging on odd length statements fixed.
  25. Device: Overview on Pocket PC fixed.
  26. Device: Date Object: no longer has Border property (it should never have had)
  27. Device: "This does not appear to have been created..." fixed (problem was in checksum calculation)
  28. Device: Color palette colors are now used properly. If you select a color based on the palette, the color gets a value like &h80000005. The runtime now looks up the proper color from the palette.
  29. QSketch sample now installs properly.
  30. ReRegister.bat included to fixup installation issues
  31. Desktop: Object names are now checked to be valid names
  32. Desktop: Programs with properties like Forecolor now load properly
  33. Desktop: "Save As" changes project name.
  34. Desktop: Line number and column number in script shows up.
  35. Desktop: .txt extension is applied properly on Save As text file.
  36. Desktop: ElseIf is highlighted properly
  37. Desktop: Save As changes project name in Project Explorer
  38. Desktop: Editor remembers comment style setting
  39. Desktop: Messages on download to device cleaned up
  40. Desktop: Tab order (ZOrder) of objects on a form can be changed (see docs)
  41. Desktop: If an object has 'Enabled' set to False, you can still edit or enable it.
  42. Desktop: Virtual CE support added. (See below)
  43. Desktop: Support for EmCE dropped.
  44. Desktop: Frame objects are now supported in the IDE. (See Below)
  45. Desktop: String table expanded to include all IDE messages for localization.
  46. Desktop: Support for other languages and fonts improved.
  47. Desktop: The Run menu lets you choose installer to run from Installers folder.
  48. Desktop: SAVE AS handles file extensions properly.
  49. Desktop: Non-Visible controls do not appear at runtime
  50. Installer: Uninstalls old version before installing new one
Documentation Changes for Version 5
  1. New Statement: ShowOKButton True|False
    If set to True, an OK button shows up in the top right corner. If set to False, an X appears. If you don't specify, the default of False is uses. This changes the behaviour of closing the main window of the app. If set to True, the app will quit completely on a Bye statement. If set to False, the app will become inactive, but continue running. Best used with Output_Close. (This works best when running the app directly. It will not work this way when the app is started from within the device IDE.)
  2. New Global: AppHwnd
    Returns the window handle of the main NS Basic window. Useful for controls such a ASpriteCE that need this. Formerly, this had to be done using the MGCEWin32.dll control.
  3. Hiding objects without hide methods
    It is now possible to hide objects that do not have hide methods, such as the Grid and PictureBox object. By making them children of a frame, you can hide and show them (as well as any other objects on the frame) by hiding and showing the frame.
  4. AddObject's new parameter
    The AddObject statement now has an optional 7th argument. If you specify the name of another obbject (it must exist already), your new object will become a child of that object. Parent objects are usually Frames. If this parameter is not specified, the object becomes a child of the main Output object as before.
  5. Changing the Tab Order of objects
    You can now change the order in which the tab key goes through the input objects on your form. Before, it was in the reverse order of creation. Now you can change that order by right clicking on the form in the Project Explorer.
  6. New Statement: SetParent child, parent
    This new statement allows you to make one control the child of another control. Both controls need to have been created already. This will work properly when the parent is an instrinsic controls built into NS Basic. Third party controls do not all implement the needed interfaces to do this properly.
  7. Forms Handling Enhanced
    We've improved how forms are handled. This makes it quicker to hide and show forms and allows you to hide and show objects that could not be hidden before.

    A form is now created from a modified Frame object used to contain all the controls on a form. A PictureBox object is added as the bottom object of the form and used to display content and to track pen-based user events.
    A form has the following methods and properties:
    • frmMyForm_Show: Used to display the form.
    • frmMyForm_Hide: Used to hide (not destroy) the form.
    • frmMyForm_Load: A subroutine called after all the objects on a form are created. The user can write his own subroutine to load data or other tasks to initialize the form. This can be put anywhere in the code. If the program does not need any load code, there is no need to have a load subroutine.
      	sub frmMyForm_load
      		msgbox "fromMyForm has just been loaded"
      	end sub
    • frmMyForm_Unload: A subroutine called after a form is hidden so the program can do processing based on the data in a form as it is hidden.
    • frmMyForm_Form.Enabled True|False: A property that will disable all the controls on the form frmMyForm. This can be put anywhere in the code. If the program does not need any load code, there is no need to have a load subroutine.
    Use the above methods instead of frmMyForm.Show, frmMyForm.Hide or frmMyForm.Visible [Read-only use OK].
    The Output object is still created but hidden behind all NS Basic Forms.

    To affect the appearance of the current form, do not use Output_ procedures. Instead, use frmMyForm_ routines which will allow you to set settings for individual forms.

  8. Virtual CE support added.
    Virtual CE is a feature that makes it easier to debug your programs on the desktop. To use it, you need to have a device connected to your desktop system via ActiveSync. Select "Start Virtual CE" from the Run menu, and an image of your device will appear on the desktop. You can operate your programs directly on the desktop: everything you do will actually run on the device, updating the screen image.

    If ActiveSync is used and the device has an IP address because of a LAN card, you will need to set the connection type to WAN and enter the IP address of the device. This is because VCE tries to connect to when using ActiveSync and this address is overridden if a network device is active on the machine.

    Screen images can be captured using Virtual CE using the SnapShot button. A bitmap image is saved into the file
    \Program Files\NSBasic\CE\Tools\RECORDED_DATA

  9. EmCE support dropped.
    We tried hard to make the EmCE emulator work. However, the differences between Windows on the desktop and Windows CE are too deep and substantial to make EmCE ever be an accurate emulator. Many of the Microsoft controls that EmCE depended on are implemented differently on the desktop and the device. Rather than using EmCE, we've elected to support Virtual CE, which works much better.
  10. Frame Objects are now supported in the IDE
    You can now add Frame objects to projects. Objects that are added on top of a Frame become children of that frame: hiding and showing a frame will hide and show the child objects.
  11. String table localization.
    All Desktop IDE messages and text are contained in the file
    \Program Files\Nsbasic\CE\Lang\strTable_English.txt.
    This allows the IDE to be localized into other languages by translating this text file. Let us know if you do this: we would like to include it for others who use your language.


  1. Completely new Desktop IDE.

    We've done a complete rewrite of the Desktop develpment environment. Starting with the codebase used in NS Basic/Palm, we've made the new version much easier to maintain and improve.
  2. Em CE - the new NS Basic CE Emulator

    This is a new tool to allow you to test your programs on the desktop before downloading to the device. It can't do everything a Windows CE device can, so be sure to read the Warning section of the Readme file for more info.
  3. Support for Pocket PC 2002 Phone Edition added.

    New devices using this OS have starting shipping - NS Basic/CE 4.0 can create programs to run on these devices.
  4. Desktop IDE can now create programs that execute immediately on device.

    Before, you could only save your program in .txt format. You had to load the program in the device IDE and save it before it could be run. Now, the Desktop IDE produces apps that are ready to run on a Windows CE device.
  5. Desktop can now load and save .nsb files.

    The old desktop could only load .txt versions of programs. The new version lets you load .nsb apps that you have created on the device.
  6. The IDE can be localized by changing the \Lang\Str_Table.

    All messages in the IDE are now kept in a Table. Under Tools...Options, you can select which string table you want to use. This can be used to create localized versions of the IDE for other languages. We will be adding Japanese and German string tables in the future.
  7. Third party tools in the \Tools will appear in the menu

    Now, tools from third parties can be integrated into the NS Basic desktop environment. Simply put them into the Tools folder. The next time NS Basic is started, they will automatically appear in the Tools menu.
  8. Form_Load and Form_Unload are supported.

    NS Basic/CE now suppports a Form_Load subroutine that will get called when a form is loaded. The syntax is
      Sub Form1_load()
        'your code
      End Sub
    Place this code anywhere in your program and it will be executed just after the form is loaded. If you double click on the form in the CE Screen of the IDE, the load subroutine will appear.

    Note that during when a form is loaded, the initial set of the value of a textbox will generate a textbox_change event. To ignore this event, put the following line of code at the beginning of the textbox_change code:

      if form1(0)=false then exit sub
    Once the form load processing is complete, form1(0) will have the value True.
  9. Help greatly expanded.

    We've compiled the reference section of the Handbook and put it under the Help menu. Now the full descriptions and samples for all statements, functions and commands are available right in the Desktop IDE.
  10. New shared library: NSBPhone adds telephone support.

    We include a new shared library that lets you access of the unique telephony features the new Pocket PC Phone Edition devices.
  11. New serial number system implemented.

    You'll need to use your new serial number to get both the desktop and device IDE working. We apologise for the inconvenience, but we had a problem with pirated numbers and people trying to hijack other user's serial numbers. Please keep your new number confidential.
  12. Problems with saving while Encrypted fixed.

    On some devices, programs which were saved while encrypted could not be loaded again by the developer. This has been fixed so that only the original developer can load an encrypted program.


  1. Tutorials 1 and 2 added.
  2. Desktop IDE will now run in demo mode if no serial number is entered.
  3. Version numbers in Help, Device IDE and VNSB all set to 4.0.1
  4. EmCE: BYE is handled better now.
  5. CE Screen in HPC format places object handles in correct screen position.
  6. Tabstrip no longer displays (tabs) item, which can't be set.
  7. Setting a textbox to blank stays blank on next load.
  8. Error 9 when adding and deleting forms fixed.
  9. Error 5 when editing menu items fixed.
  10. ComboBox has new property: ExpandedHeight set at design time.
  11. Error 5 on renaming new Grid fixed.
  12. New event: Output_Close is sent when NS Basic is closed. (see below)
  13. EmCE: Finance control works if you use AddObject (see Tech Note 11).
  14. Error 53 when installing IDE and Runtime to device from menu fixed.
  15. Default download path set automatically based on device connected.
  16. Error 91 when starting null program fixed.
  17. Program name not set properly when starting new program.
  18. New property: Enabled (see below)
  19. New property: Tag (see below)
  20. New property: Hwnd (see below, updated)
  21. IDE remembers if it was maximized when it reopens.
  22. Checkmark settings under View menu remembers on IDE reopening.
  23. New event: Form_Unload (see below)
  24. When more than 100 objects are added, the names are generated properly.
  25. KillFocus statement removes focus from current object
  26. CurrentPath global property gives pathname to current program
  27. NSBVersion gives current NSB Version number.
  28. CommandButton object has a new Value property. (See below)
  29. You can set the date property of a Date object with a date varible.
  30. NSBPhone sample updated.
  31. AODCE sample updated.
  32. If a Desktop connot interpret generated code, it will still load.
  33. The size of the CE screen is set properly for Pocket PC.
  34. The CE Screen and EmCE now have menubars like the real thing.
  35. The runtime and fat installers are now included on the CD.
  36. On line Help files updated with new features and lots of corrections.
  37. Fixed error with opening broken projects.
  38. More reliably dumps erroneous code to editor
  39. Fixed error (735) with unloading ActiveX controls to swap screens
  40. Fixed error when overwriting longer program to device

Documentation Notes for 4.0.1

  1. New Output_Close event: This event is sent when the app is closed by tapping the close box while it is running. The event is also sent on Pocket PC devices when then minimize button (the X in the top right) is clicked. The following code will end an NS Basic program on a Pocket PC instead of minimizing it.
    sub Output_close()
    end sub
  2. The Bottom and Right properties are obsolete. Use Height and Width instead.
  3. New Property: Enabled. This new property is available for all intrinsic functions. The default is True. When set to False, the object will not register clicks. Use this to turn off objects. This property is only available in code right now: it is not on the property list in the Desktop IDE or VNSB yet.
  4. New Property: Tag. This new property is available for all intrinsic functions. It is a string set by the user. Use this to keep track of any information you want for a particular object. This property is only available in code right now: it is not on the property list in the Desktop IDE or VNSB yet.
  5. New Property: Hwnd. This new property is available for all intrinsic functions. It contains the Windows handle for the control. Use it with system API functions, such as in MGCEWinAPI32.dll. This property is read only and only accessable at runtime.
  6. New Event: Form_unload. This event is send when a form is closed. It exists in programs created with the Desktop IDE.
  7. Commandbutton.Value. Setting the property Value to 1 toggles the button, fires the click event, and sets the value back to 0


  1. TextBox sample updated
  2. BackColor and Forecolor can now use System Palette colors
  3. New intrinsic Property: ParentHWND (See below)
  4. New Intrinsic Property: WindowLong (See below)
  5. New intrinsic Property: Timer (See below)
  6. New OptionButton Property: Group (See below)
  7. New control: Frame
  8. New control: TriButton
  9. New control: HScrollBar
  10. New control: VScrollbar
  11. Error 5 on renaming Grid fixed.
  12. Bug in generated code for Combobox.integralHeight fixed.
  13. Support added for Remote Display Control. (See below)
  14. Improvements made to encryption of .nsb files
  15. New sample: NewObjects.nsb
  16. Japanese Help added.

Documentation Notes for 4.0.2

  1. Remote Display Control: This utility allows you to operate a Windows CE device connected by ActiveSync from your desktop. Since you can use your mouse and keyboard, it's a much faster way to test stuff on the device. Plus, screen shots are easy to make.
    WARNING: Do not disconnect ActiveSync while connected!
  2. New Property: ParentHwnd. This property is available in all intrinsic functions (the ones in the ToolBox). It sets an object's parent to another object. Most often used with a Frame, the objects will then be shown and hidden when the parent is. The Top and Left properties of the object will be relative to the parent, not the screen. See the NewObjects sample.
  3. New Property: WindowLong. This property is available in all intrinsic functions (the ones in the ToolBox). With this function, you can control many of the appearance characteristics of an object. You'll need to get Microsoft's documentation on WindowLong to get the details.
  4. New Property: Timer. This property is available in all intrinsic functions (the ones in the ToolBox). It sets up an event to be fired the number of milliseconds specifed in the future. If set to 0, no event is created.
    sub myButton_timer()
    	msgbox "myButton Timer event!"
    end sub
  5. New Property: Group. Applies to the OptionButton control only. OptionButtons are grouped in the order in which they are created. Setting Group to True starts a new group. Setting it to False continues the existing group. Only one member of a group will have the value True. Setting the value of any member of a group to True will automatically set the other members to False. See the NewObjects sample.
  6. New Control: Frame. The Frame control puts up a rectangle with an optional title on top. It is handy to use with ParentHwnd to hide and show objects contained in it. See NewObjects.nsb.
  7. New Control: TriButton. The Tributton control is like a checkbox, except that it has three states: Unchecked, Checked and Disabled. It cycles through the 3 settings as it is tapped. See NewObjects.nsb.
  8. New Controls: HScrollBar and VScrollbar. These controls are horizontal and vertical scrollbars. See NewObjects.nsb. (Note: these do not work properly on the device yet)


Support added for Mobile Windows 2003, also known as Pocket PC 2003. This has been done transparently: you do not have to make any changes to your code. The same NS Basic/CE program will run on Pocket PC 2003, Pocket PC 20002 and Pocket PC, as well as many other Windows CE devices.

The new NS Basic 4.1 Runtime and Basic installers work on all these devices, installing the proper files, so your programs and NS Basic/CE will work.


  1. ShowOKButton command added. See docs below.
  2. Characters>127 fixed on download to device. This will fix problems with umlaut, ¨, euro character, etc.
  3. Device: Programs that are saved shorter that previous length can be loaded successfully.
  4. AddObject can now name a parent control. See docs below.
  5. Controls like Grid and PictureBox can now be hidden. See docs below.
  6. Error in single step debugging on odd length statements fixed.
  7. Overview on Pocket PC fixed.
  8. Date Object: no longer has Border property (it should never have had)
  9. Problem with "This does not appear to have been created..." fixed (problem was in checksum calculation)
  10. New SetParent statement (see docs)
  11. The color palette color are now used properly. If you select a color based on the palette, the color gets a value like &h80000005. The runtime now looks up the proper color from the palette.
  12. QSketch sample now installs properly.
IDE-specific Changes
  1. Object names are now checked to be valid names
  2. Programs with properties like Forecolor now load properly
  3. "Save As" changes project name.
  4. Line number and column number in script shows up.
  5. .txt extension is applied properly on Save As text file.
  6. ElseIf is highlighted properly
  7. Save As changes project name in Project Explorer
  8. Editor remembers comment style setting
  9. Messages on download to device cleaned up
  10. Tab order (ZOrder) of objects on a form can be changed (see docs)
  11. If an object has 'Enabled' set to False, you can still edit or enable it.