twinBASIC Update: February 18, 2025
Highlights include an advanced tB ribbon demo from fafalone, an IDE option to prevent code tab stacking, and a simple tB updater from jdelano0310.

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 Monday week, 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, please leave a comment below.
Here are some links to get involved with the project:
- Custom twinBASIC IDE Installation Guide
- twinBASIC Discord Server (chat about the project)
- twinBASIC Wiki (list of new features not in VBx)
- GitHub Issue Tracker (report bugs)
- twinBASIC/VBx LinkedIn Group
Highlights
New IDE Option: Single Row of Code Tabs
BETA 683 introduced a new IDE Option (Tools > IDE Options...):
- IDE: Single line of code panel tabs

This feature controls how the IDE handles open code pane tabs when there are too many to fit at once above the code window. You have two options:
- Auto-stack the code panel tabs in multiple rows (default)
- Extend the code panel tabs horizontally in a single row and use arrows to slide hidden tabs into view
Here are the two options:
Auto-Stacked Tabs

Single Line of Tabs

This feature was originally requested in GitHub:
Discord Chat Summary
* Auto-generated via Claude-3.5-Sonnet-200k on poe.com
Overview
This week's discussions centered around COM interfaces, registry dependencies, and IDE improvements. Notable technical exchanges covered interface inheritance in COM libraries, function pointer implementations, and dependency troubleshooting. Community engagement was active with several detailed technical discussions and bug reports.
Interface Implementation & COM
- Wayne Phillips clarified that twinBASIC's disassembly shows two versions of COM interfaces - a flattened dispinterface version and a vtable version with proper inheritance
- Detailed discussion of the
_Textbox
interface implementation revealed how tB handles both dispinterface and vtable interfaces separately - Community members explored function pointer implementation using Delegates for IOCP server development
IDE Improvements & Bug Fixes
- Wayne Phillips released BETA 683 with fixes for MDIChild form property issues and introduced single line tabs option
- Community feedback highlighted opportunities for improvement in the IDE's smart guides and property editor interface
- Several members discussed ways to enhance code navigation and selection features in the editor
Dependency Management & Deployment
- Significant discussion around troubleshooting COM component registration and system dependencies
- Community members shared expertise on using tools like Dependency Walker and registry inspection for deployment issues
- Detailed exploration of MDAC and modern alternatives for database connectivity
Bug Fixes & Known Issues
- Fixed an issue where MDIChild form properties weren't persisting after name changes in BETA 683
- Identified a long-standing IDE display issue with certain numeric calculations
- Comment color rendering bugs were noted as a low-priority issue
Conclusion
The week showed significant progress in both core language features and IDE improvements. The community's focus on deployment and dependency management highlights the growing adoption of twinBASIC in production environments. The rapid response to bug reports and implementation of new features demonstrates the project's strong development momentum.
Around the Web
Advanced Ribbon Demo from fafalone

From the GitHub project readme:
The Windows UI Ribbon Framework Demo - Advanced is the long awaited final part of my series on using the UI Ribbon in twinBASIC. With the terrible decline in UI in Windows 11, the ribbon is looking pretty great compared to how it is now.
If you're not already familiar with the basics, you'll want to see the Introduction demo, Intermediate Demo, and Galleries Intro demos, which are all in the following repo: https://github.com/fafalone/UIRibbonDemos
This Advanced demo combines the Intermediate and Galleries demo, and builds on those to cover almost all of the remaining features of the ribbon, and a number of bonus features related to the operation of the RichEdit control so that almost all of the related buttons work.

GettbZip: A Simple tB Installer/Updater
From the GitHub project page:
Simple twinBasic "installer"
This is a SUPER simple project to find the newest released twinBasic zip file from it's GitHub Releases page, download it and, if selected, "install it". Which deletes the current folder and extracts the zip recreating the local folder twinBasic resides in.
It allows for simply opening the zip or open the folder the zip was downloaded to.
You may select to launch twinBASIC after it is 'installed" as well.

For additional information and informal "release notes", check out the related VBForums post.

NOTE: As with other tB updaters I've mentioned here, I have not personally tested this software.
Changelog
Here are the updates from the past week. You can also find this information by visiting the GitHub twinBASIC Releases page.
AI-Generated Changelog Summary
* Auto-generated via Claude-3.5-Sonnet, sorted in order of its opinion of "most impactful changes."
Here's a concise summary of the notable updates in twinBASIC Beta:
-
IDE Improvements
- Added new option for single-line code panel tabs with improved tab visibility handling
- Fixed form designer stability issues, including better handling of control placement and property changes
-
VB6/VBA Compatibility Enhancements
- Improved type suffix handling when Option Explicit is OFF, fixing variable declaration behavior to match VB6
- Fixed form events reliability (Form_Resize, Form_Load, Form_Unload) and subclassing behavior
-
Runtime Performance
- Enhanced menu handling to reduce screen flashing during dynamic updates
- Fixed memory management issues related to dynamic menu population
- Improved AutoRedraw functionality for better graphics performance
-
Bug Fixes
- Resolved issues with global variable state management after debug sessions
- Fixed windowless controls rendering in the form designer
- Corrected UserControl initialization and dimension handling
WARNING: The following issues are present in BETA builds 623 - 685 (the latest build as of publication):
- IMPORTANT: This is an interim/experimental release. It includes significant changes, so some instability is to be expected. [Editor's Note: Rolling back to BETA 622 may be necessary until the BETA 623+ version stabilizes or if any of the KNOWN ISSUES below affect your project.]
- KNOWN ISSUE: UserControls from the ACTIVE project will not appear correctly in the form designer in this release (they are purposely disabled until next release). Packaged controls, such as VBCCR will work.
- KNOWN ISSUE: Menus currently not appearing in MDI Forms (broken in this build)
- KNOWN ISSUE: 'Scale*' properties are often not settable in the IDE property sheet (broken in this build)
- KNOWN ISSUE: Setting Width/Height via the property sheet often does not work correctly (broken in this build)
- KNOWN ISSUE: Controls are not being destroyed properly by the form designer, causing big memory leaks (broken in this build)
- there are known memory leaks in these versions, so memory usage will be higher than at the Version 1.0 release
BETA 680
- fixed: Form_Resize event wouldn't fire after a call to Show() if Width/Height had previously been set prior to the call [ XYplorer, discord ]
- fixed: after an F5/Start debug session ends, global variables would not be reset [ XYplorer, discord ]
- fixed: some edge cases around Form_Load and Form_Unload, involving subclassing [ XYplorer, discord ]
- fixed (regression in BETA 679) adding/deleting an item via the PROJECT EXPLORER could lead to an internal IDE error
BETA 681
- fixed: (regression) some tbShell demos (e.g. tbShellBrowse) not working properly, due to an accidental change in UC Initialize event handling, and UC Width/Height property bugs [ fafalone, discord ]
- fixed: Cls() bug causing issues when AutoRedraw is TRUE [ XYplorer, private ]
- fixed: excessive menu bar flashing due to redrawing immediately for each change [ XYplorer, private ]
- fixed: 'memory locked' runtime error when populating menus dynamically [ XYplorer, private ]
BETA 682
- improved: now enforcing stricter constant expression evaluation rules to prevent compiler hard crash in some instances when evaluating invalid code (e.g. when evaluating array bounds) [ jovick, discord ]
- fixed: file number prefix (#) was not supported in InputB() [ jovick, discord ]
BETA 683
- fixed: changing the form Name property in the form designer no longer breaks the form designer [ forliny, discord ]
- added: IDE option 'Single line of code panel tabs'
BETA 684
- fixed: (regression in BETA 683) placing windowless controls in the form designer would not render immediately [ sokinkeso, discord ]
- fixed: (regression) cannot move Line controls in the form designer unless using the control drag points [ sokinkeso, discord ]
BETA 685
- fixed: on first running the IDE (on a new machine), the 'Save Changes' button caption on the IDE options dialog was invalid [ https://github.com/twinbasic/twinbasic/issues/2038 ]
- fixed: compilation error when using a procedure named 'Default' on a form [ https://discord.com/channels/927638153546829845/1301588011997200436 ]
- fixed: 'Error' followed by a type suffix can be used as a local variable in VBx, even when Option Explicit is OFF [ https://github.com/twinbasic/twinbasic/issues/1867 ]
- fixed: with Option Explicit OFF, type suffix characters were being ignored on local variables, defaulting to Variant
- fixed: in single-line code panel tabs mode, changing the active document (e.g. via PROJECT EXPLORER) now scrolls the active tab into view