McBasic™Get McBasic™ ↗
Build 881
Learn by building

Choose what you want to build.

Project lessons include complete code, initial properties, event bindings, downloadable files and an acceptance checklist.

80 lessons

Start here

Build your first Mac app

Build a greeting window that validates input and opens a second Form.

Project, code & checkpoints
Input & events

Validate a customer-entry Form

Keep user input, validation feedback and the save action in agreement.

Project, code & checkpoints
Input & events

Respond to text as it changes

Update an output label immediately while respecting the current option state.

Project, code & checkpoints
Input & events

Build a keyboard-friendly dialog

Make Return, Escape and Tab part of the design, not an afterthought.

Project, code & checkpoints
Input & events

Display field-level validation

Combine built-in validity with a business rule attached to a named control.

Project, code & checkpoints
Input & events

Handle a password field

React to password changes without exposing the value in diagnostics.

Project, code & checkpoints
Input & events

Guide structured text input

Use a mask, validity feedback and InvalidInput without silently accepting partial data.

Project, code & checkpoints
Input & events

Accept a bounded number

Work with a numeric value and validate its allowed range.

Project, code & checkpoints
Input & events

Choose and clear a date

Distinguish a selected date from a cleared value.

Project, code & checkpoints
Input & events

Choose a time

Handle a time change with the TimePicker’s documented event contract.

Project, code & checkpoints
Input & events

Choose and validate a color

Connect color selection to change feedback and explicit validation.

Project, code & checkpoints
Input & events

Control a timer with a checkbox

Separate a checkbox activation from its stored Boolean value.

Project, code & checkpoints
Input & events

Expose an on/off preference

Reflect the current switch state in the interface.

Project, code & checkpoints
Input & events

Keep option groups independent

Build mutually exclusive choices without coupling unrelated decisions.

Project, code & checkpoints
Lists & navigation

Select from a compact list

Populate a ComboBox and handle selection changes.

Project, code & checkpoints
Lists & navigation

Choose from a visible list

Keep a list selection and its output synchronized.

Project, code & checkpoints
Data & services

Bind choices to stable record IDs

Display a friendly name while preserving a typed database value.

Project, code & checkpoints
Input & events

Distinguish typing from searching

Use Change for feedback and Search for the search action.

Project, code & checkpoints
Lists & navigation

Build a tree with lazy children

Select nodes, insert a child and complete a lazy expansion request.

Project, code & checkpoints
Lists & navigation

Build an image-backed item browser

Share ImageList assets between ListView and ImageCombo.

Project, code & checkpoints
Media & graphics

Manage a shared image collection

Declare reusable images independently from the controls that display them.

Project, code & checkpoints
Lists & navigation

Route menu commands

Connect menu items to a named event handler.

Project, code & checkpoints
Lists & navigation

Add a contextual command

Attach a contextual menu to the intended target control.

Project, code & checkpoints
Lists & navigation

Build a command toolbar

Expose frequent commands and report their result in a StatusBar.

Project, code & checkpoints
Layout & Forms

Report nonblocking status

Update status without interrupting the user’s task.

Project, code & checkpoints
Layout & Forms

Organize controls with panels

Understand parenting, nested layout and inherited interaction state.

Project, code & checkpoints
Layout & Forms

Let a container arrange its children

Use flow layout instead of maintaining every child coordinate manually.

Project, code & checkpoints
Layout & Forms

Give a group a visible boundary

Use a captioned container to explain related input fields.

Project, code & checkpoints
Layout & Forms

Reveal optional detail on demand

React to expanded and collapsed states.

Project, code & checkpoints
Layout & Forms

Keep long content reachable

Put overflow inside a dedicated scrollable parent.

Project, code & checkpoints
Layout & Forms

Build an adjustable two-pane view

Separate navigation and detail with a movable splitter.

Project, code & checkpoints
Layout & Forms

Organize a multi-page Form

Place controls inside TabPage containers and navigate between pages.

Project, code & checkpoints
Layout & Forms

Manage independent Form instances

Create, show, hide and unload windows deliberately.

Project, code & checkpoints
Layout & Forms

Wait for a modal result

Open a modal Form asynchronously and handle its lifetime.

Project, code & checkpoints
Layout & Forms

Build a multi-document workspace

Host related document windows while keeping independent windows separate.

Project, code & checkpoints
Language

Share behavior between Forms

Put reusable code in a standard module instead of duplicating event logic.

Project, code & checkpoints
Language

Use With without losing object identity

Reduce repeated qualifiers while understanding the captured receiver.

Project, code & checkpoints
Language

Write and call BASIC procedures

Use functions, ByRef parameters and explicitly bounded arrays.

Project, code & checkpoints
Data & services

Bind a database result to a grid

Load records asynchronously and handle selection safely.

Project, code & checkpoints
Data & services

Page records and distinguish two kinds of search

Combine provider paging with a local filter and a parameterized database search.

Project, code & checkpoints
Data & services

Create, edit and delete persistent records

Complete a CRUD workflow with selection, refresh and export.

Project, code & checkpoints
Data & services

Build a complete customer workspace

Combine migrations, list/detail Forms, cancellable writes and reporting.

Project, code & checkpoints
Data & services

Build a library with local data and web search

Connect search, JSON parsing, SQLite storage and CSV export.

Project, code & checkpoints
Data & services

Download with progress and cancellation

Keep the interface responsive while a file downloads safely.

Project, code & checkpoints
Data & services

Preview, export and print a report

Render a declared report resource to PDF and handle cancelled printing.

Project, code & checkpoints
Media & graphics

Display a declared image

Keep image assets portable from project to built application.

Project, code & checkpoints
Media & graphics

Show bounded progress

Update determinate progress without exceeding its range.

Project, code & checkpoints
Input & events

Connect a slider to a value display

Keep a numeric choice and its text feedback synchronized.

Project, code & checkpoints
Media & graphics

Display a scalar measurement

Present a bounded measurement with a Gauge.

Project, code & checkpoints
Media & graphics

Show a compact trend

Plot a small sequence without turning it into a full chart.

Project, code & checkpoints
Media & graphics

Draw with Line and Shape

Use simple graphic controls as part of a Form layout.

Project, code & checkpoints
Lists & navigation

Use the compatibility control family

Work with UpDown, MonthView, DTPicker, TabStrip and FlatScrollBar.

Project, code & checkpoints
Media & graphics

Play an image-frame animation

Control playback and respond to frame, completion and failure events.

Project, code & checkpoints
Media & graphics

Control audio playback

Handle loading, playback, completion and failure as separate states.

Project, code & checkpoints
Media & graphics

Control video playback

Build a video surface with honest loading and error feedback.

Project, code & checkpoints
Media & graphics

Display a compact status badge

Communicate a small status without relying on color alone.

Project, code & checkpoints
Data & services

Use native pickers safely

Open file, save, folder, color, font and print-related dialogs.

Project, code & checkpoints
Extensions

Author a reusable BASIC control

Compose child controls behind public properties and a custom event.

Project, code & checkpoints
Extensions

Consume a reusable visual control

Set public properties and handle an event from an installed control package.

Project, code & checkpoints
Extensions

Package a reusable BASIC library

Export a small calculation as a library API.

Project, code & checkpoints
Extensions

Call a packaged BASIC library

Resolve a library reference and call its exported function.

Project, code & checkpoints
Input & events

Build a menu-driven, dynamic Classic workbench

Rebuild a Classic application with Menu Editor actions, runtime control arrays, control dragging, Type value copies, class initialization and Sub Main.

Project, code & checkpoints
Data & services

Exercise exported desktop services

Check the complete dialog, clipboard, media and report sample before and after Windows or Linux export.

Project, code & checkpoints
Input & events

Build a six-cell control array

Create a 3 × 2 TextBox grid, share one Change handler, inspect typed references and handle a missing member.

Project, code & checkpoints
Language

Create, grow and test an array of objects

Use a typed Customer array with instance identity, ByRef mutation, ReDim Preserve and four executable regression tests.

Project, code & checkpoints
Data & services

Use transactions, editable drafts and backups

Keep a two-record update atomic, validate and save a BindingSource draft, inspect schema and back up the database.

Project, code & checkpoints
Language

Build a tested language workbench

Write original, executable examples of functions, enums, loops, arrays, collections, dictionaries, classes and structured errors.

Project, code & checkpoints
Data & services

Use files, settings, JSON and the clipboard

Build a local service workbench with complete event handlers and no remote account requirement.

Project, code & checkpoints
Input & events

Handle keyboard, pointer and drag-and-drop events

Use typed event parameters and ByRef decisions in a small accessible Form.

Project, code & checkpoints
Data & services

Build a weather and saved-location workspace

Combine geocoding, current weather, SQLite migrations, saved-location CRUD and CSV export.

Project, code & checkpoints
Workflow

Publish and test your first cross-platform app

Export the complete Modern Workbench, then validate its artifact on the destination desktop.

Guided workflow & checkpoints
Workflow

Import a tiny VB6 application and verify the result

Use a self-contained two-control example to learn the import/report/test cycle before migrating a real application.

Guided workflow & checkpoints
Workflow

Fix a behavioral bug after a clean Check

Reproduce a whitespace bug, review the source and Run evidence shared with Fix, then verify a minimal repair and Undo.

Guided workflow & checkpoints
Workflow

Change one handler with an explicit AI scope

Use Ask, Explain, Build, Fix and Review on a disposable greeting app, with complete expected code and recovery checks.

Guided workflow & checkpoints
Workflow

Interview, revise and run a small AI plan

Use Plan mode to define a one-window app before generating it, then verify the event code and applied result.

Guided workflow & checkpoints
Workflow

Trace a caught and an unhandled error

Practice live Check, Jump to Definition, Output evidence and Go to Line with complete, reversible first-app handlers.

Guided workflow & checkpoints
Workflow

Find and test an event-handler defect

Use a deliberate defect to practice diagnostics, breakpoints and regression checks.

Guided workflow & checkpoints
Workflow

Prepare a reproducible local release

Take a checked project through Release build and inspect the unsigned application without contacting Apple.

Guided workflow & checkpoints
Workflow

Review an AI-generated change safely

Practice provider setup, scoped consent, candidate review and recovery in a disposable project.

Guided workflow & checkpoints
Workflow

Build a lifecycle-aware C# component

Compile and package the real LifecycleProbe sample, then observe the runtime boundary from a generated consumer.

Guided workflow & checkpoints
Source baseline 20f4bfed6b · Build manifest