Bold for Delphi¶
Bold for Delphi is a Model-Driven Architecture (MDA) framework and Object-Relational Mapping (ORM) tool for Delphi. It enables UML-based model development with OCL (Object Constraint Language) queries, automatic code generation, and sophisticated database persistence.
Key Features¶
- UML Model Editor - Design your domain model visually
- Code Generation - Automatically generate Delphi classes from UML models
- Object Space - In-memory object graph with full lifecycle management
- OCL Queries - Powerful query language for filtering and navigating objects
- Database Persistence - Transparent object-relational mapping
- Subscription System - Automatic UI updates when objects change
Architecture Overview¶
flowchart TB
subgraph UI["User Interface"]
VCL[VCL Controls]
Handles[Bold Handles]
end
subgraph ObjectSpace["Object Space"]
System[TBoldSystem]
Objects[TBoldObject instances]
OCL[OCL Evaluator]
end
subgraph Persistence["Persistence Layer"]
PMapper[Object-Relational Mapper]
DB[(Database)]
end
VCL --> Handles
Handles --> System
System --> Objects
System --> OCL
Objects --> PMapper
PMapper --> DB
click Handles href "classes/TBoldSystemHandle/" "Bold Handle classes"
click System href "classes/TBoldSystem/" "TBoldSystem documentation"
click Objects href "classes/TBoldObject/" "TBoldObject documentation"
click OCL href "concepts/ocl/" "OCL documentation"
click PMapper href "concepts/persistence/" "Persistence documentation"
click DB href "concepts/persistence/" "Database persistence documentation"
Quick Start¶
// Get all customers with orders over $1000
var
Customers: TBoldObjectList;
begin
Customers := BoldSystem.EvaluateExpressionAsNewElement(
'Customer.allInstances->select(orders->exists(total > 1000))',
nil
) as TBoldObjectList;
end;
Version¶
Current Version: 26.01.0 (community-maintained)
Supported Delphi Versions: 11.3, 12.1, 12.3, 13