HarbourBuilder Documentation

The most powerful cross-platform visual IDE for Harbour. Build native applications for Windows macOS Linux with a single codebase.

What is HarbourBuilder? A Borland C++Builder-style visual IDE that generates Harbour code. Design forms visually, drop components from the palette, set properties in the inspector, and run — with native performance on every platform.

Architecture

graph TB A["Application Code (.prg)"] --> B["xBase Commands
#xcommand (compile-time)"] B --> C["Harbour OOP Layer
TForm, TControl, TToolBar"] C --> D["HB_FUNC Bridge
UI_FormNew, UI_SetProp, UI_OnEvent"] D --> E1["Win32 API
C++ (CreateWindowEx)"] D --> E2["Cocoa/AppKit
Objective-C (NSView)"] D --> E3["GTK3
C (GtkWidget)"] D --> E4["Android
JNI (android.widget.*)"] style A fill:#58a6ff,stroke:#388bfd,color:#0d1117 style D fill:#3fb950,stroke:#2ea043,color:#0d1117 style E1 fill:#0078d4,stroke:#005a9e,color:#fff style E2 fill:#555,stroke:#333,color:#fff style E3 fill:#e95420,stroke:#c34113,color:#fff style E4 fill:#34c759,stroke:#1a8d4d,color:#0d1117

Component Palette

130 controls across 16 tabs — the most complete component palette of any Harbour IDE:

TabControlsCount
StandardLabel, Edit, Memo, Button, CheckBox, RadioButton, ListBox, ComboBox, GroupBox, Panel, ScrollBar11
AdditionalBitBtn, SpeedButton, Image, Shape, Bevel, MaskEdit, StringGrid, ScrollBox, StaticText, LabeledEdit10
NativeTabControl, TreeView, ListView, ProgressBar, RichEdit, TrackBar, UpDown, DateTimePicker, MonthCalendar9
SystemTimer, PaintBox2
DialogsOpenDialog, SaveDialog, FontDialog, ColorDialog, FindDialog, ReplaceDialog6
Data AccessDBFTable, MySQL, MariaDB, PostgreSQL, SQLite, Firebird, SQLServer, Oracle, MongoDB9
Data ControlsTBrowse, DBGrid, DBNavigator, DBText, DBEdit, DBComboBox, DBCheckBox, DBImage8
PrintingPrinter, Report, Labels, PrintPreview, PageSetup, PrintDialog, ReportViewer, BarcodePrinter8
InternetWebView, WebServer, WebSocket, HttpClient, FtpClient, SmtpClient, TcpServer, TcpClient, UdpSocket9
ThreadingThread, Mutex, Semaphore, CriticalSection, ThreadPool, AtomicInt, CondVar, Channel8
AIOpenAI, Gemini, Claude, DeepSeek, Grok, Ollama, Transformer, Whisper, Embeddings9
ConnectivityPython, Swift, Go, Node, Rust, Java, DotNet, Lua, Ruby9
GitGitRepo, GitCommit, GitBranch, GitLog, GitDiff, GitRemote, GitStash, GitTag, GitBlame, GitMerge10
ERP / BusinessPreprocessor, ScriptEngine, ReportDesigner, Barcode, PDFGenerator, ExcelExport, AuditLog, Permissions, Currency, TaxEngine, Dashboard, Scheduler12

Total: 130 controls — all available on Windows, macOS, and Linux.

Key Features

Visual Form Designer

WYSIWYG form designer with dot grid, selection handles, rubber band selection, drag & drop from component palette, and real-time code generation.

Two-Way Tools

Changes in the designer instantly update the code editor, and vice versa. Your METHOD implementations are always preserved during code regeneration.

Built-in AI Assistant

Local AI coding assistant powered by Ollama. Ask questions about Harbour, get code suggestions, refactor code, and fix errors — all without an internet connection.

Integrated Debugger

Step-by-step execution (F7/F8), breakpoints (F9), variable inspection, call stack, and watch window — all integrated into the code editor.

Quick Example

#include "hbbuilder.ch"

function Main()

   local oForm, oBtn

   DEFINE FORM oForm TITLE "Hello World" ;
      SIZE 400, 300 FONT "Segoe UI", 10

   @ 120, 140 BUTTON oBtn PROMPT "Click Me!" ;
      OF oForm SIZE 120, 32
   oBtn:OnClick := { || MsgInfo( "Hello from HarbourBuilder!" ) }

   ACTIVATE FORM oForm CENTERED

return nil

This code runs identically on Windows, macOS, and Linux — with native controls on each platform.

Vibe coded 100% using Claude Code

HarbourBuilder was built entirely with AI assistance — from the C++ core and native backends to the Harbour OOP layer and the visual designer. A new paradigm in software development.

On This Page

Getting Started Component Palette IDE Features Tutorials Reference Platforms Architecture Component Palette Key Features Quick Example