McBasic™Get McBasic™ ↗
Build 881
Curriculum map

A path through the whole toolkit.

Coverage means a documented exercise exists. It does not claim every possible state or platform has been runtime-tested.

Feature families#

FeatureHands-on pathWhat you practice
Modern desktop workflowsBuild a menu-driven, dynamic Classic workbenchMenu Editor, dynamic control arrays, Classic, control drag, Type records and Sub Main.
Cross-platform publishingPublish and test your first cross-platform app
Exercise exported desktop services
Windows/Linux export and destination acceptance checks.
VB6 migrationImport a tiny VB6 application and verify the resultComplete input fixture, import, report review and behavior verification.
Visual design & control configurationBuild your first Mac app
Build a six-cell control array
Organize controls with panels
Let a container arrange its children
Organize a multi-page Form
Build an adjustable two-pane view
Keep long content reachable
Properties, hierarchy, sizing, anchoring, containers and keyboard order.
Input, validation & accessibilityValidate a customer-entry Form
Display field-level validation
Build a keyboard-friendly dialog
Handle keyboard, pointer and drag-and-drop events
Value changes, field errors, keyboard handling, pointer parameters, drag-and-drop and accessible names.
Forms & application lifetimeManage independent Form instances
Wait for a modal result
Build a multi-document workspace
Download with progress and cancellation
Instances, modeless/modal/MDI navigation, close veto, cancellation and teardown.
BASIC language & reusable codeBuild a tested language workbench
Create, grow and test an array of objects
Write and call BASIC procedures
Share behavior between Forms
Use With without losing object identity
Types, functions, ByRef, enums, loops, arrays, collections, dictionaries, classes, errors and tests.
SQLite & data bindingCreate, edit and delete persistent records
Build a complete customer workspace
Use transactions, editable drafts and backups
Bind choices to stable record IDs
Page records and distinguish two kinds of search
Migrations, parameterized CRUD, transactions, rollback, schema, backups, validated drafts, paging and filtering.
HTTP, JSON & asynchronous workBuild a weather and saved-location workspace
Build a library with local data and web search
Download with progress and cancellation
Requests, parsing, busy state, errors, progress, cancellation and safe shutdown.
Files, resources & application servicesUse files, settings, JSON and the clipboard
Use native pickers safely
Display a declared image
Manage a shared image collection
UTF-8 files, app paths, resources, scalar settings, logging, clipboard and native pickers.
Reports & exportsPreview, export and print a report
Build a complete customer workspace
Build a library with local data and web search
Report definitions, preview, PDF, print cancellation and CSV output.
Lists, trees, menus & commandsBuild a tree with lazy children
Build an image-backed item browser
Bind choices to stable record IDs
Route menu commands
Add a contextual command
Build a command toolbar
Stable selection identity, lazy nodes, image-backed lists and command surfaces.
Timers, graphics & mediaControl a timer with a checkbox
Draw with Line and Shape
Display a scalar measurement
Show a compact trend
Play an image-frame animation
Control audio playback
Control video playback
Periodic updates, measurement/trend presentation, playback and terminal media events.
BASIC libraries & visual extensionsPackage a reusable BASIC library
Call a packaged BASIC library
Author a reusable BASIC control
Consume a reusable visual control
Public API, properties, custom events, packages and consumer resolution.
C# component SDKBuild a lifecycle-aware C# componentShared contract, attributes, passive metadata, resource access, lifecycle and admission gates.
Check, test & debugBuild a tested language workbench
Find and test an event-handler defect
Trace a caught and an unhandled error
Live Check, Jump to Definition, compiler diagnostics, assertions, breakpoints, caught errors, runtime dialogs, Go to Line and regression checks.
Build, release & source historyPrepare a reproducible local releaseGit baseline, target selection, local unsigned artifacts and separate distribution gates.
AI-assisted creation & editingReview an AI-generated change safely
Change one handler with an explicit AI scope
Interview, revise and run a small AI plan
Fix a behavioral bug after a clean Check
Six chat modes, interviews, project maps, array edit scopes, permission cards, partial-stage slices, diagnostic and behavioral fixes, optional Run evidence, selected findings, Apply and Undo.

Every built-in component#

ComponentWorking lesson
TextBoxBuild your first Mac app
PasswordBoxHandle a password field
TabControlOrganize a multi-page Form
TabPageOrganize a multi-page Form
CommandButtonBuild your first Mac app
LabelBuild your first Mac app
ValidationProviderDisplay field-level validation
TimerControl a timer with a checkbox
MenuRoute menu commands
MenuItemBuild a menu-driven, dynamic Classic workbench
CheckBoxControl a timer with a checkbox
PanelOrganize controls with panels
FlowLayoutPanelLet a container arrange its children
FrameGive a group a visible boundary
ExpanderReveal optional detail on demand
OptionButtonKeep option groups independent
DataGridPage records and distinguish two kinds of search
ComboBoxSelect from a compact list
ListBoxChoose from a visible list
ContextMenuAdd a contextual command
BadgeDisplay a compact status badge
SearchBoxDistinguish typing from searching
ToggleSwitchExpose an on/off preference
ColorPickerChoose and validate a color
ImageDisplay a declared image
ProgressBarShow bounded progress
SliderConnect a slider to a value display
NumericBoxAccept a bounded number
DatePickerChoose and clear a date
TreeViewBuild a tree with lazy children
StatusBarReport nonblocking status
ToolBarBuild a command toolbar
ScrollContainerKeep long content reachable
TimePickerChoose a time
SplitContainerBuild an adjustable two-pane view
MaskedTextBoxGuide structured text input
GaugeDisplay a scalar measurement
SparklineShow a compact trend
ImageListManage a shared image collection
ListViewBuild an image-backed item browser
ImageComboBuild an image-backed item browser
UpDownUse the compatibility control family
MonthViewUse the compatibility control family
DTPickerUse the compatibility control family
TabStripUse the compatibility control family
FlatScrollBarUse the compatibility control family
LineDraw with Line and Shape
ShapeDraw with Line and Shape
CommonDialogUse native pickers safely
AnimationPlay an image-frame animation
AudioPlayerControl audio playback
VideoPlayerControl video playback
Source baseline 20f4bfed6b · Build manifest