TBoldGrid¶
TBoldGrid is a data-aware grid component that displays Bold object lists. It connects to a TBoldListHandle and shows objects as rows with configurable columns, each driven by an OCL expression.
Class Hierarchy¶
classDiagram
TCustomGrid <|-- TBoldCustomGrid
TBoldCustomGrid <|-- TBoldGrid
TBoldCustomGrid o-- TBoldGridColumns
TBoldGridColumns o-- TBoldGridColumn
TBoldGrid : +BoldHandle
TBoldGrid : +Columns
TBoldGrid : +AddNewAtEnd
TBoldGridColumn : +Expression
TBoldGridColumn : +Title
TBoldGridColumn : +AllowCheckBox
click TBoldListHandle href "../TBoldListHandle/" "TBoldListHandle"
Key Properties¶
TBoldGrid¶
| Property | Type | Description |
|---|---|---|
BoldHandle |
TBoldAbstractListHandle |
List handle providing data |
Columns |
TBoldGridColumns |
Column collection |
BoldProperties |
TBoldListAsFollowerListController |
List behavior control |
AddNewAtEnd |
Boolean |
New items at end of list |
TitleFont |
TFont |
Header font |
DefaultRowHeight |
Integer |
Row height in pixels |
TBoldGridColumn¶
| Property | Type | Description |
|---|---|---|
BoldProperties |
TBoldStringFollowerController |
Cell rendering control |
Expression |
string |
OCL expression for cell value |
Title.Caption |
string |
Column header text |
Width |
Integer |
Column width |
Alignment |
TAlignment |
Text alignment |
AllowCheckBox |
Boolean |
Render boolean as checkbox |
ReadOnly |
Boolean |
Prevent cell editing |
LookupHandle |
TBoldAbstractListHandle |
Dropdown lookup list |
Working with TBoldGrid¶
Form Designer Setup¶
- Drop
TBoldGridon a form - Set
BoldHandleto aTBoldListHandle - Open the Columns editor (double-click or right-click)
- Add columns and set each column's
BoldProperties.Expression
Column Expressions¶
name // Simple attribute
address.city // Navigate association
orders->size // Collection count
salary.formatFloat('#,##0') // Formatted display
Programmatic Column Creation¶
procedure SetupGrid;
var
Col: TBoldGridColumn;
begin
BoldGrid1.Columns.Clear;
Col := BoldGrid1.Columns.Add;
Col.Title.Caption := 'Name';
Col.BoldProperties.Expression := 'name';
Col.Width := 150;
Col := BoldGrid1.Columns.Add;
Col.Title.Caption := 'City';
Col.BoldProperties.Expression := 'address.city';
Col.Width := 100;
Col := BoldGrid1.Columns.Add;
Col.Title.Caption := 'Active';
Col.BoldProperties.Expression := 'active';
Col.AllowCheckBox := True;
Col.Width := 60;
end;
Special Renderers¶
- TBoldFirstColumnRenderer — draws a row marker (triangle) in the first column
- TBoldGridCheckBoxPainterRenderer — renders boolean values as checkboxes
- TBoldConstraintRenderer — highlights constraint violations
Common Patterns¶
Sorting by Column¶
Configure sorting via the list handle's Expression with OCL orderby:
Conditional Cell Formatting¶
Use a custom renderer to change font/color based on values:
// In BoldProperties.OnGetFont or via a TBoldAsStringRenderer subclass
procedure TMyForm.GridGetFont(...)
begin
if Element.EvaluateExpressionAsString('active') = 'False' then
aFont.Color := clGray;
end;
See Also¶
- TBoldListHandle - Data source
- TBoldEdit - Single-value editing
- TBoldNavigator - List navigation buttons