thinBasic Changelog

What's new in thinBasic 1.12.0.0

Feb 6, 2024
  • Module updated to the latest version available on GitHub: https://github.com/ThinBASIC/thinBasic_TBGL
  • Oxygen module updated to the latest version available on GitHub: https://github.com/Charles-Pegge/OxygenBasic
  • thinBasic Setup application:
  • compiled with Inno Setup Compiler version 6.2.2
  • All thinBasic executables and DLLs modules are compressed using UPX 4.2.2 64bit
  • Scintilla editor control updated to Scintilla 4.4.6.0: https://www.scintilla.org/

New in thinBasic 1.9.16.17 (Aug 15, 2016)

  • added few additional classes, one module from Petr (StringBuilder), fixed and improved few features

New in thinBasic 1.9.16.16 (Aug 15, 2016)

  • added few more features to Hash Table. Added thinBasic recent paths. Added a new very interesting data structure: AVL Tree. Create a tree, add new nodes key/data pairs, traverse tree in order from top to bottom and bottom to top

New in thinBasic 1.9.16.15 (Aug 15, 2016)

  • fixed a Tokenizer bug. Added more features to Hash Table now able to change Hash Table capacity and to Clone an Hash Table into another with all key/data pairs.

New in thinBasic 1.9.16.14 (Aug 15, 2016)

  • other fixed in Exit Do, more pre-parsing error checking in IF/ELSE/END IF, few fix in zLib module

New in thinBasic 1.9.16.13 (Aug 15, 2016)

  • hopefully fixed Exit Do. Changed HASH Table functions in order to avoid Second WW SS acronym

New in thinBasic 1.9.16.12 (Aug 15, 2016)

  • an important bug fixed: numeric parameters passed BYREF in user defined functions not working properly. Added new native Core data structure: Hash Table and some functions working with it

New in thinBasic 1.9.16.10 (Aug 15, 2016)

  • some fix, changed the way #INCLUDE find files, added left/right bit shift >, added C notation for hex numbers, added Scintilla Edit Control in template dialogs (it's a start), numeric and string equates (constants starting with % or $) can now be declared also without = sign, #INCLUDE and #INCLUDEDIR can now have many meta tags for getting special folders, improved profile info

New in thinBasic 1.9.16.9 (Aug 15, 2016)

  • some fix, added APP_IniFile, renamed #TRACE to #PROFILE, added a profile utility (see help), added more profile info: time spent in function stack allocation/de-allocation, number of function parameters, number of function local variables

New in thinBasic 1.9.16.8 (Aug 15, 2016)

  • some fix plus new #TRACE directive

New in thinBasic 1.9.16.7 (Aug 15, 2016)

  • nothing new compared to 1.9.16.6 but LD function renamed to StrDistance

New in thinBasic 1.9.16.6 (Aug 15, 2016)

  • #BUNDLE File ... added, FOR ... WHEN ... added, LD function added, ZLib_ExtractToString function added.

New in thinBasic 1.9.16.5 (Aug 15, 2016)

  • dynamic arrays (numeric and dyn strings) inside TYPEs can now extends the power of thinBasic TYPEs. A new tokenizer module class.

New in thinBasic 1.9.16.4 (Aug 15, 2016)

  • some urgent fixes

New in thinBasic 1.9.16.3 (Aug 15, 2016)

  • some fixes

New in thinBasic 1.9.16.2 (Aug 15, 2016)

  • improved ARRAY SORT ... adding Collate Ucase.

New in thinBasic 1.9.16.1 (Aug 15, 2016)

  • fixed error reported by Petr Schreiber.

New in thinBasic 1.8.9.0 (Sep 5, 2011)

  • thinAir - Add:
  • Added online version checking
  • Implemented font style for the following code parts: Text, Number, Keyword, Operator, ScopeKeyword, Comment, String, LineNumber
  • UI - Add:
  • Canvas_GetPixel function added
  • SendString function added
  • Win_GetMessage function added
  • Win_IsDialogMessage function added
  • Win_TranslateMessage function added
  • Win_DispatchMessage function added
  • Win_PostQuitMessage function added
  • Added Dialog_FindAndReplace common dialog
  • Added Dialog_Find common dialog
  • Added WIN_RegisterWindowMessage function
  • Added FINDREPLACE native UDT
  • MLGrid_Sheet_Select function added
  • MLGrid_Sheet_GetName function added
  • MLGrid_Sheet_SetName function added
  • MLGrid_Sheet_SetName function added
  • MLGrid_Sheet_Tabs_Visible function added
  • MLGrid_Sheet_Add function added
  • Core - Fix:
  • Fixed App_List* function in order them all be consistent with A-Z sort order
  • Fixed "/*" not usable in function parameters
  • Fixed C-like and normal comments interferences
  • thinDebug - Fix:
  • Random saved thinDebug window setting: window position, window size, separator size
  • Random crash on trying to close thinDebug window while debugging
  • thinDebug - Improved:
  • Random crash while debugging inside UI message pump callbacks. Improved stability but still not solved for all cases
  • Core - Add:
  • Assing function added
  • BGR function added
  • APP_ListClasses function added
  • APP_ListUDTs function added
  • ZLib - Improved:
  • Internal ZLib library updated to ZLIB.DLL version available: 1.2.5
  • STAT - Fix:
  • Stat_FillArray fixed. Inconsistency when From parameter was zero
  • File - Fix:
  • File_Save: when indicated path was a directory path, all files into specified directory were deleted
  • thinAir - Fix:
  • Fixed command line parameters dialog. Menu Script/Command line
  • Fixed content sensitive help search for constants, equates and keywords having $ and % chars in their names
  • Core - Improved:
  • RGB function improved
  • UI - Fix:
  • MLGRID: fixed current cell visualization

New in thinBasic 1.8.8.0 (Sep 5, 2011)

  • UI - Add:
  • PropertyList_ItemSetPtr function added
  • PropertyList_ItemGetPtrByName function added
  • Canvas_Circle fucntion added
  • Win_GetPixel function added
  • Canvas_GetTextHeight function added
  • Canvas_GetTextWidth function added
  • SDK - Add:
  • Added thinBasic_Parse2Numbers1String SDK function
  • Added thinBasic_Class_AddMethod SDK function
  • Added thinBasic_Class_Add SDK function
  • Added thinBasic_DeclareFunction SDK function
  • thinAir - Improved:
  • Backup is now driven by manual choice of the programmer.
  • Every time programmer wants a backup copy of a source file, just use "Save and Backup" button and a backup copy of the source file will be saved into .\BAK\ directory with date and time in file name.
  • Improved Code Browser handling of #INCLUDE directive in order to manage special chars mask (* and ?) and special directory directives (%APP_PATH%, %APP_SOURCEPATH%, %APP_INCLUDEPATH%)
  • Reduced MDI window refresh when switching from MDI window to the other or when rebuilding code browser or selecting active MDI window using tabbed dialog
  • Improved code scanning during code browser building process
  • Improved option dialog switching code browser parsing options in a dedicated dialog area
  • Core - Add:
  • Added the first thinBasic module class: cTimer
  • cTimer class implements a class able to measure time from seconds to microseconds. See cTimer class for details on how to use it and available .methods.
  • Added a new important functionality in thinBasic arsenal: Core Module Classes.
  • It is just the beginning of this new feature and more will come in future thinBasic releases.
  • Thanks to new Core SDK interfaces (thinBasic_Class_Add, thinBasic_Class_AddMethod), every thinBasic Module developers are now able to declare module classes into their module projects.
  • Dist function added
  • EXPAND$ function added
  • c-style block comments using /* ... */ pairs
  • StartsWith function added
  • EndsWith function added
  • Bit_Toggle function added
  • Bit_Reset function added
  • Bit_Set function added
  • Bit_Get function added
  • Added REPEAT/UNTIL statement
  • Added Bit function
  • Added a complete set of predefined color equates
  • #BUNDLE Option ... pre-parsing keyword added
  • #BUNDLE Name ... pre-parsing keyword added
  • #BUNDLE File ... pre-parsing keyword added
  • Core - Fix:
  • ITERATE FOR statement when executed from inside recursive SELECT CASE ... statements
  • Fixed and improved ParseSet$ function.
  • Join$ generated wrong output string when using IndexTo parameter and IndexTo was not corresponding with last array element
  • Fixed double concatenation token in string expressions
  • Fixed LO when used with WORD numeric specifier
  • Fixed HI when used with WORD numeric specifier
  • Fixed ParseCount when string to parse had leading and/or trailing $CRLF
  • Fixed OdbcGetDataStringByColName in odbc352.dll lib
  • Fixed row order assignment. Now square brackets will be used for such feature
  • Fixed SizeOf when dealing with nested UDTs
  • Fixed ? in parsing RAWTEXT
  • RETURN from function error when a FOR/NEXT statement encountered after RETURN
  • Msgbox function was breaking parent callback when used with timeout option
  • DO can now be ALIASed
  • Fixed handling of #IF / #ELSE / #ENDIF pre-parsing directive
  • Fixed parenthesis detection when passing arrays to external functions
  • Fixed MAT and DET parenthesis detection
  • SMTP - Improved:
  • Dependency library no more present: it is now included and executed from memory on the fly
  • thinAir - Add:
  • Added new About Box allowing version checking of thinBasic module files
  • Added script error handling detection even if error occurs into an included files. thinAir will detect error and when it has occurred placing the cursor over error line.
  • Added option to save all files before script execution or only current script
  • Added code browser option to show code browser element only for active file
  • New option in code browser will let sync code browser window with MDI tabs selection
  • Added Author information in thinAir options like it was present in old thinAir
  • Added Breakpoint comment that allows setup of debugger breakpoint directly into script. Breakpoints will be remember for the next debugging session
  • Added Bookmark comments that allows automatic insert of editor bookmarks also on source code reloading (bookmarks will be remember during next file load)
  • Core - Improved:
  • Improved Split function in order to accept a NUL$ string as string delimiter. In this case any character of main string is splitted into target string array
  • Improved pre-parsing phase. Added DO/LOOP pairs checking
  • +=, -=, *=, /*, \= operators can now be used as assignment operators for numeric static elements inside UDT
  • DATE$ function: added new output formats
  • Implicit line continuation in presence of a delimiter
  • Function default parameters value can now be specified as numeric expression using predefined equates
  • InputBox$ can now have a password flag in order to display an asterisk (*) for each character typed into the control in order to obscure the password
  • Possibility to assign row order data to numeric matrix
  • Improved JOIN$ fucntion now able to work also on matrix
  • Improved handling of text inside RAWTEXT ... END RAWTEXT
  • REDIM improved to handle absolute variables
  • PARSE can now load string buffer directly from a file
  • BEGIN ... END ... statement improved adding comma separated lists
  • Improved script execution speed when calling external functions
  • Improved passing BYREF parameters to external function
  • Improved passing arrays to external functions. It is no more necessary to specify initial array element index. If missing 1 will be assumed
  • FTP - Improved:
  • Dependency library no more present: it is now included and executed from memory on the fly
  • FTP - Add:
  • FTP_WriteToLogFile function added
  • DT - Fix:
  • DT_DateToSec fixed. Error in calculating when date was below year 0002
  • DT_SecToDate fixed. Error in calculating when date was below year 0002
  • DT_GetTimeStamp fixed. Error in output format
  • thinAir - Fix:
  • Fixed many many bugs as listed in project milestone ID 2
  • Code browser failing to identify function names using equal for optional parameters default value
  • Fixed @AUTHOR@ macro when creating new script from templates
  • Fixed @USERNAME@ macro when creating new script from templates
  • Fixed @COMPUTERNAME@ macro when creating new script from templates
  • Missed TBAI module keywords coloring
  • File - Improved:
  • File_Copy: added flush command when done in order to flush cache.
  • Eval - Fix:
  • Removed trailing space in Eval_String when not necessary
  • Eval - Add:
  • Eval_Reset function added
  • Eval_Variable_Exists function added
  • UI - Improved:
  • RTF_AppendText improved adding COLOR and BCOLOR blocks and possibility to specify color name taken from predefined color equates
  • thinDebug - Add:
  • Debugger will now automatically recognize breakpoints from special Breakpoint comment in source code.
  • thinDebug - Fix:
  • Fixed font usage in editor window. First mono space font installed was picked up. Now Courier New font is used by default.
  • OS - Improved:
  • OS_WinGetVersionTimeline will now recognize Windows 7 and 2008 Servers versions
  • OS_WinVersionText will now recognize Windows 7 and 2008 Servers versions

New in thinBasic 1.8.0.0 (Jun 3, 2010)

  • One of the biggest development steps in thinBasic development history.
  • Greatly improved parser stability, huge set of fixes and improvements, some more speed, new modules, new functionalities.

New in thinBasic 1.7.7.0 (Feb 24, 2009)

  • fixed important bugs introduced by recent pre-parsing improvements.
  • fixed important bugs inside AND keyword when used as bitwise.
  • Added new functionalities in Console module that will let developers to work with multiple console buffers. Programmers will be able to work using double buffering techniques avoiding annoying flickering when updating many screen areas.
  • On User Interface module:
  • added ToolBar control, improved Canvas UI control, improved MLGrid control, and many other little aspects.
  • Improved UI_ImageCtx module.
  • Improved XPrint module.
  • On thinBasic SDK interface we were able to add a long waited functionality: possibility to call thinBasic script functions having parameters from inside thinBasic modules. For those developing thinBasic modules this will open a new big area of interaction allowing creation of specific events fired and handled directly from the script source code
  • ... many more enhancements

New in thinBasic 1.7.6.0 (Jan 27, 2009)

  • Maintenance release to fix found bugs, improved source code checking during pre-parsing phase, a new UI control, many new UI functions

New in thinBasic 1.7.5.0 (Jan 5, 2009)

  • Maintenance release to fix found bugs, improved debugger, few new UI controls

New in thinBasic 1.6.0.10 (Jul 21, 2008)

  • More speed, Unions, Type Inherit, updated TBGL, updated Oxygen module.

New in thinBasic 1.5.0.0 (Dec 28, 2007)

  • 3 new modules: VBRegExp module, Exe module, LAN module.

New in thinBasic 1.1.0.0 (Nov 20, 2006)

  • Many new features,
  • bug fixes,
  • modules

New in thinBasic 1.0.10.2 (Sep 8, 2006)

  • Now free with no limitations.

New in thinBasic 1.0.10.1 (Jul 12, 2006)

  • � UI Add CONTROL SET LOC
  • � UI Add CONTROL GET LOC
  • � Core Fix If a line was ending with underscore continuation line char _ followed by space, thinBasic preprocessor was hanging.
  • � catventure Core Add
  • � DECLARE SUB and DECLARE FUNCTION partially working on easy defined API functions. Still many tests to be done. Gpf are too much often.
  • � Core Fix If a variable declared local inside a function had the same name of a global variable, declaration was failing preventing usage of local one.
  • � Core Add DECLARE SUB and DECLARE FUNCTION introduced. Declaration of a sub or function will be used to declare Windows API functions. This will allow in a future thinBasic release, to call standard API functions or external DLL functions.
  • � Core Add ASCIIZ string type introduced but still to be managed.
  • � Core Add App_ListFunctions returns all User Defined Functions (UDF) and API declared functions inside a script.
  • � Core Fix APP_ListEquates, APP_ListKeywords were missing first item.
  • � Core Add ARRAY SORT introduced
  • � Core Add DECLARE statement introduced. Parsing is in place. This statement has been introduced in order to work with Windows API functions.
  • � Install Fix Fixed registry key for thinAir. If keys exists, installation will not change their values.