twinBASIC Update: March 5, 2023
Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
On April 23, 2021, I helped Wayne Phillips introduce the world to twinBASIC at the Access DevCon Vienna conference. I boldly predicted that twinBASIC (along with the Monaco editor) would replace VBA and its outdated development environment by 2025. With that goal in mind, this weekly update is my attempt to keep the project fresh in the minds of the VBA development community.
Every Sunday, I will be providing updates on the status of the project, linking to new articles discussing twinBASIC, and generally trying to increase engagement with the project. If you come across items that should be included here, tweet me @NoLongerSet or email me at mike at nolongerset dot com.
Here are some links to get involved with the project:
- Custom twinBASIC IDE Installation Guide (NOTE: the twinBASIC VSCode extension is under a feature freeze until 2023)
- GitHub Issue Tracker (report bugs)
- twinBASIC Discord Server (chat about the project)
- twinBASIC/VBx LinkedIn Group
Highlights
MonthView and DatePicker Controls Added
They can be found in the "WinNativeCommonCtls" tab of the form designer.
The date picker control is shown in red in the screenshot below and the month view control is shown in cyan.
New Methods, Properties, and Events
- added: support for PaintPicture method on Form/PictureBox/UserControl
- added: support for Form/PictureBox/UserControl Scale method
- added: support for CausesValidation property and Validate events for all native controls
Around the Web
Hiding the twinBASIC Splash Screen
Over in GitHub, someone asked if there was an option to turn off the splash screen:
When I run compiled console app, the splash screen "twin Basic" is appearing.
Is it adjustable, to turn off?
This is likely a common question for many new users. It's something I haven't mentioned on this site in awhile since it's not new functionality.
Longtime commenter FullValueRider provided the answer:
Easy. Just buy a license. The 64 bit community version has the splash screen.
If you need to hide the five-second splash screen in 64-bit builds–or if you'd just like to support the project–you can purchase a pre-order license here: https://twinbasic.com/preorder.html
That page also includes feature comparisons between the three available licenses:
- Community (free)
- Professional
- Ultimate
This is also probably a good time for a periodic reminder that I am not a developer on the twinBASIC project, nor do I have any financial stake in the company. I'm just a longtime Access developer with high hopes for what twinBASIC could mean for the Access community.
And if you'd like to learn more about the longterm plans for Access and twinBASIC, be sure to register for the upcoming Access DevCon Vienna online conference, where I will be presenting on the topic, "Exploring the Future of twinBASIC and Access Development."
Changelog
Here are the updates from the past week. You can also find this information by visiting the GitHub twinBASIC Releases page.
WARNING: The following issue is present in BETA builds 202 - 262 (the latest build as of publication):
- there are known memory leaks in these versions, so memory usage will be higher than normal
BETA 256
- fixed: internal JSON encoding was not handling unusual control characters correctly [ bclothier, discord ]
- added: WinNativeCommonCtls.MonthView control
- added: WinNativeCommonCtls.DTPicker control
- fixed: type library viewer was showing strings incorrectly, with extra backslash escape characters [ fafalone, discord ]
- fixed: (regression) go-to type definition not working inside packages [ sokinkeso, discord ]
- fixed: (regression) some ActiveX properties were not display with appropriate editors in the form designer property sheet (e.g. OLE_COLOR not showing as a color picker)
- fixed: (regression) [ RunAfterBuild ] attribute had stopped working due to change in DAP thread behaviour
- fixed: PictureBox 'Object is invalid or no longer set' error when containing form is reloaded [ https://github.com//issues/1505#issuecomment-1445126730 ]
- fixed: runtime validation of array bounds was ignoring incorrect dimension count [ https://github.com//issues/1503 ]
BETA 257
- fixed: potential compiler crash while editing interface definitions [ fafalone, discord ]
- fixed: UserControl Resize event should not fire in response to WM_SIZE, see https://jeffpar.github.io/kbarchive/kb/187/Q187740/ [ Tecman, discord ]
BETA 258
- added: support for PaintPicture method on Form/PictureBox/UserControl
BETA 259
- improved: stack overflow and similar native system exceptions are now reported in the debug console
- improved: system exceptions occurring when evaluating form designer properties are now caught and reported inline in the property sheet [ https://github.com//issues/1512 ]
- added: detection of ActiveX controls that are not compatible with DataExecutionPrevention (DEP) with notice to disable DEP (e.g. gif89)
- improved: toolbox icons for WinNativeCommonCtls refreshed [ big thanks to sokinkeso! ]
BETA 260
- added: support for Form/PictureBox/UserControl Scale method
- added: support for CausesValidation property and Validate events for all native controls
- improved: all native icons now refreshed, big thanks to sokinkeso
BETA 261
- fixed: (regression) 'bad json received' message appearing in the IDE since BETA 256 [ https://github.com//issues/1515 ]
- improved: further enhancements to form designer toolbox icons [ sokinkeso ]
- fixed: 'ambiguous method' error when trying to use Form/PictureBox/UserControl PaintPicture method in some instances [ gremlin, discord ]
BETA 262
- fixed: GDI font handle leak in instances when the FontSize property is set at runtime [ https://github.com//issues/1516 ]