Bold is a Model Driven Architecture (MDA) framework and Object-Relational Mapping (ORM) tool for Delphi. It allows you to start with a UML model of your application and execute it with a sophisticated object-relational mapping layer, OCL query language, change synchronization, and IDE-integrated tools.
Bold for Delphi is best suited for:
- Complex Domain Models - Applications with many interrelated business entities, inheritance hierarchies, and associations
- Data-Intensive Business Applications - ERP, logistics, CRM, inventory management, financial software
- Rich Query Requirements - OCL enables expressive queries like
orders->select(status = 'Pending' and total > 1000) - Long-Lived Desktop Applications - Automatic UI updates when data changes via the subscription system
- Rapid Prototyping - Define your model in UML, generate code, and have a working database-backed application quickly
- Quick Start Guide - Step-by-step instructions to install Bold, build your first model, and run the MasterDetail example application.
- Roadmap - Development plans, supported features, and future directions for Bold for Delphi.
- Changelog - Version history and release notes.
- Delphi 13.0 Athens (packages/Delphi30/)
- Delphi 12.3 Athens (packages/Delphi29.3/)
- Delphi 12.1 Athens (packages/Delphi29.1/)
- Delphi 11.x Alexandria (packages/Delphi28/)
- Delphi 13.0, 12.3, 12.1 CE or 11.3 installed
Or manually from PowerShell: by using https://github.com/omonien/DelphiStandards/blob/master/DelphiBuildDPROJ.ps1
Adjust -DelphiVersion from what you use.
`DelphiBuildDPROJ.ps1 -Projectfile "C:\BoldForDelphi\packages\Delphi30\dclBold30.dproj" -DelphiVersion "37.0" -VerboseOutPut`Unit tests are located in UnitTest/ and use the DUnitX framework.
cd UnitTest
build.bat
UnitTest.exe --exit:ContinueCode coverage reports can be generated using DelphiCodeCoverage. See UnitTest/UnitTesting.md for setup instructions.
cd UnitTest
run_coverage.batResults are generated in UnitTest/coverage_report/. Open CodeCoverage_summary.html to view the report.
Source/
├── BoldAwareGUI/ # GUI components and control packs
│ ├── BoldControls/ # Visual controls (Grid, Edit, ComboBox, etc.)
│ ├── ControlPacks/ # Renderer/follower pattern for UI binding
│ ├── Core/ # GUI base functionality
├── Common/ # Shared infrastructure
│ ├── Core/ # Base classes (BoldBase, BoldContainers, BoldDefs)
│ ├── Subscription/ # Observer pattern (BoldSubscription, BoldDeriver)
│ ├── Support/ # Utilities (BoldUtils, BoldGuard, BoldIndex)
│ ├── COM/ # COM infrastructure
│ ├── Logging/ # Log handling
│ └── IDE/ # Common IDE support
├── ObjectSpace/ # Object model runtime
│ ├── BORepresentation/ # Business object representation
│ ├── Core/ # BoldElements, BoldSystem
│ ├── Ocl/ # OCL parser and evaluator
│ ├── RTModel/ # Runtime type information
│ └── Undo/ # Undo/redo mechanism
├── Persistence/ # Database persistence
│ ├── Core/ # Persistence controllers and handles
│ ├── DB/ # Database persistence base
│ ├── FireDAC/ # FireDAC adapter (recommended)
│ ├── SOAP/ # SOAP persistence
│ └── Propagation/ # Change propagation
├── PMapper/ # Object-relational mapping
│ ├── SQL/ # SQL generation
│ ├── Default/ # Default mappers
│ └── DBEvolutor/ # Database schema evolution
├── Handles/ # Handle system for UI binding
├── MoldModel/ # Model representation and code generation
├── UMLModel/ # UML metamodel and editor
└── ValueSpace/ # Value interfaces and streaming
| Package | Type | Description |
|---|---|---|
| dclBold.dpk | Design-time | Main Bold components package |
- Report issues - Use GitHub Issues for bugs and feature requests
- Submit PRs - Fork the repo and submit pull requests
- Documentation - Help improve docs and examples
- Testing - Report compatibility issues with different databases/Delphi versions
- Spread the word - Blog posts, conference talks, social media
Have suggestions for the roadmap? Open an issue on GitHub or discuss on Discord.
Version format: YY.MM.patch (e.g., 25.12.0)
| Source | Purpose |
|---|---|
| dproj | Current version (shown in About dialog) |
| CHANGELOG.md | Version history |
| Git tags | Backup/release markers |
Release workflow:
- Move
[Unreleased]items in CHANGELOG.md to new version section - Update version in dproj (Project > Options > Version Info)
- Create git tag:
git tag v25.12.1
- GitHub: https://github.com/bero/BoldForDelphi
- Issues: https://github.com/bero/BoldForDelphi/issues
- Discord: https://discord.gg/C6frzsn
- Wiki: https://delphi.fandom.com/wiki/Bold_for_Delphi
- GitHub Wiki: https://github.com/bero/BoldForDelphi/wiki
- Blog: http://boldfordelphi.blogspot.com/
MIT License - Source code made available by Embarcadero.
Original Version: 4.0.1.0 Bold for Delphi, Release 4.0 (2004-04-23)