twinBASIC Update: September 9, 2025

Highlights include a release date for tB-based 64-bit XYplorer, documentation added for new App object properties, and the beginnings of an MZ-Tools-style tB IDE add-in.

twinBASIC Update: September 9, 2025

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:


Highlights

64-bit twinBASIC-Based XYplorer Release Date

Don announced the upcoming release date of XYplorer running on twinBASIC as September 22, 2025:

This marks the second commercial product publicly advertised as "Created with twinBASIC," the first being iGrid:

Here are links to these two tB-based commercial products:

ActiveX Grid Control - iGrid | 10Tec
iGrid is an ActiveX grid control for VB6/VBA with built-in editors and sorting/grouping, flicker-free display code. The perfect choice as unbound grid control.
XYplorer - File Manager for Windows
XYplorer is a file manager and explorer replacement for Windows. Fast, powerful, portable, dual paned, and multi-tabbed. License from $14.95.

New App Object Documentation

fafalone added a new section to the twinBASIC documentation that covers the new App. object properties added by twinBASIC:

  • App.IsInIDE - True when running from the IDE.
  • App.IsElevated - Returns whether the program is currently running with administrator rights.
  • App.LastBuildPath - Returns the full path of the last build. Does not persist between compiler/IDE restarts.
  • App.Build - For the additional version number field.
  • App.ModulePath - Returns the full path of the currently executing module. For example, if placed in a DLL and called from an EXE, the path of the DLL would be returned. Also, the twinBASIC debugger DLL is given when running from the IDE, when the method is in the app itself.

Discord Chat Summary

* Auto-generated via Claude-Sonnet-4

Overview

The twinBASIC community continued active development discussions throughout the week, with significant focus on conditional compilation features, DLL handling, and commercial product releases. The community celebrated reaching 1016 members while addressing various technical challenges around memory usage, static linking, and IDE functionality.

Conditional Compilation & Project Structure

  • fafalone demonstrated conditional compilation capabilities for forms, modules, and classes, showing how to exclude entire forms from builds using #If blocks around form attributes and code
  • Custom compilation constants can be defined in project settings, enabling multiple build configurations from the same codebase
  • Project groups (like VB6's .vbg files) are planned for after v1.0 release, which will enable shared projects across multiple solutions

Commercial Product Milestones

  • waynephillipsea confirmed that iGrid was the first official commercial 64-bit twinBASIC product, with additional niche products released without public disclosure
  • XYplorer's 64-bit version built with twinBASIC is scheduled for release on September 22, 2025, marking another significant commercial adoption milestone
  • The community continues tracking commercial implementations as validation of the platform's production readiness

DLL Integration & Static Linking

  • Discussion of static linking benefits using .obj/.lib files versus dynamic linking with .dll files
  • bclothier explained that static linking embeds library contents into the final executable, eliminating distribution dependencies at the cost of larger file sizes
  • fafalone provided guidance on DLL directory handling for IDE debugging using SetDllDirectory App.Path

IDE Performance & Memory Usage

  • Community members reported varying memory usage patterns, with some users experiencing high RAM consumption during development
  • Discussion of 64-bit IDE benefits for users with memory-intensive workflows involving multiple development tools
  • IDE bug reported where overflow errors on single lines caused project-wide error highlighting, requiring investigation

Conclusion

The week showcased twinBASIC's growing commercial viability with multiple product releases and robust development features like conditional compilation. The community demonstrated strong technical collaboration in solving integration challenges and optimizing development workflows. Memory management and IDE performance remain areas of active discussion as the platform scales to handle larger, more complex projects.

Around the Web

"Code formatter and more"

Frank-S posted the following in the Discord show-and-tell channel:

Hello everyone, Because I love the well-known ‘MZ Tools’ so much and miss them in tB, I have tried to recreate a few of their functions with the help of an add-in. I am still in the very early stages and could use some help. Since I am only a self-taught amateur programmer, it is not easy for me to create something useful. But I've made a start. My dream is to recreate the following ‘MZ-Tools’ functions:
- Indent lines
- Insert procedure header
- Sort procedures
- Find unused variables in the project
I'm posting the project I've started here so that everyone can test it and feel free to develop it further.

A downloadable .zip file is available at the link above.

Changelog

Here are the updates from the past week. You can also find this information by visiting the GitHub twinBASIC Releases page.

Releases · WaynePhillipsEA/twinbasic
Contribute to WaynePhillipsEA/twinbasic development by creating an account on GitHub.
  • No new releases this week.

All original code samples by Mike Wolfe are licensed under CC BY 4.0