This topic covers the implementation details of TMonthHeaderOptions.
The linked internal-structure entry uses the XML identifier TMonthHeadersOptions; the implementing Pascal type is TMonthHeaderOptions.
Scope: TypeDefinitions.pas; record. Prepared from the curated implementation supplied for this review on 2 October 2026.
Represents one of the 12 MonthHeader slots. Initialize supplies DateSystem=0, DayValue1=1, DayValue2=7 and empty strings. DoesSomething determines whether the writer emits more than the type marker.
Notation and shared helper rules: Reading this reference.
Literal rec_type values emitted within these routines: TMonthHeadersOptions. Nested values may belong to child wrappers rather than this owner itself; the attribute entries below give their exact locations.
Exact XML fields and attributes
The paths below start at this record or property node. A slash identifies a child element; @ identifies an attribute. Curly braces mark a variable index or expression, not literal XML text. Initial values describe initialization; they do not establish what an omitted individual element does. The Implementation toggle below contains the supplied routines for exact branch order and conversions.
DateSystem
XML representation: The text of the DateSystem element.
Initial value: 0 (TMonthHeaderOptions.Initialize).
Reading: Reads the element into DateSystem when the record node exists and contains child elements.
Writing: Stores the numeric value of DateSystem when the record’s DoesSomething check succeeds.
DayValue1
XML representation: The text of the DayValue1 element.
Initial value: 1 (TMonthHeaderOptions.Initialize).
Reading: Reads the element into DayValue1 when the record node exists and contains child elements.
Writing: Stores the numeric value of DayValue1 when the record’s DoesSomething check succeeds.
DayValue2
XML representation: The text of the DayValue2 element.
Initial value: 7 (TMonthHeaderOptions.Initialize).
Reading: Reads the element into DayValue2 when the record node exists and contains child elements.
Writing: Stores the numeric value of DayValue2 when the record’s DoesSomething check succeeds.
StrNoChange
XML representation: The text of the StrNoChange element.
Initial value: an empty string (TMonthHeaderOptions.Initialize).
Reading: Reads the element into StrNoChange when the record node exists and contains child elements.
Writing: Stores StrNoChange when the record’s DoesSomething check succeeds.
StrMonthChange
XML representation: The text of the StrMonthChange element.
Initial value: an empty string (TMonthHeaderOptions.Initialize).
Reading: Reads the element into StrMonthChange when the record node exists and contains child elements.
Writing: Stores StrMonthChange when the record’s DoesSomething check succeeds.
StrYearChange
XML representation: The text of the StrYearChange element.
Initial value: an empty string (TMonthHeaderOptions.Initialize).
Reading: Reads the element into StrYearChange when the record node exists and contains child elements.
Writing: Stores StrYearChange when the record’s DoesSomething check succeeds.
@rec_type
XML representation: The rec_type attribute.
Writing: Stores the literal text “TMonthHeadersOptions” whenever the writer reaches this field.
Initialization and reset values
TMonthHeaderOptions.Initialize
Setting or temporary variable |
Initial value |
When it is assigned |
DateSystem |
0 |
Always |
DayValue1 |
1 |
Always |
DayValue2 |
7 |
Always |
StrNoChange |
an empty string |
Always |
StrMonthChange |
an empty string |
Always |
StrYearChange |
an empty string |
Always |
Storage declarations relevant to interpretation
These are in-memory member and property types, not a list of mandatory XML children. They retain array bounds, fixed buffers and selector types. The field reference above defines what is actually serialized.
Name |
Declared type / bounds |
Kind |
DateSystem |
integer |
member |
DayValue1 |
integer |
member |
DayValue2 |
integer |
member |
StrNoChange |
string |
member |
StrMonthChange |
string |
member |
StrYearChange |
string |
member |
FmtNoChange |
string |
member |
FmtMonthChange |
string |
member |
FmtYearChange |
string |
member |
The Implementation toggle contains only TMonthHeaderOptions methods. Initializers and helpers belonging to other types are identified separately below. Shared XML-helper limitations are explained in Reading this reference.
Declaration reproduces this record’s complete declaration from the supplied source, including its fields, properties and method signatures.