Please enable JavaScript to view this site.

 

Navigation: Appendices > Q++Studio > XML Identifiers > Internal Data Structures > Implementation > List

TMiniCalOptions — XML implementation

Scroll Prev Up Next More

This topic covers the implementation details of TMiniCalOptions.

 

Scope: cpMiniCalOptions.pas; class derived from TBtnEditProperty. Prepared from the curated implementation supplied for this review on 2 October 2026.

 

Current and Other minicalendar properties can be represented by a Status-only node when they share settings. The script loader detects the presence of mcOptions, not the wording of Status, and can load one property’s XML into both instances.

 

For nonyearly grids the Other options can be omitted in favor of Current; for yearly grids the converse can occur. Preserve both property containers. At least one mcOptions block is expected by the loader.

 

Current layout uses IncludeAllOptionsInTmcOptions=true. A false/missing layout marker can invoke ReadTextBlobFromXML, now supplied in v2 and included below. SaveTextBlobToXML resolves to the empty base implementation, as confirmed by the author.

 

Notation and shared helper rules: Reading this reference.

 

Legacy additional fields (v2 source)

 

Location relative to the property node

Legacy read operation

XtagText/XtagText2330; XtagText/XtagText2431

Read only when XtagText exists

OneLineTabsOptions

Delegate to OneLineTabsOptions.ReadFromXML

ParagraphStyleRec

Delegate to ParagraphStyleRec.ReadFromXML

strWeekdays1Selection; strWeekdays2Selection

Read string values

DateFormatSequence

Decode consecutive pairs of characters as integer zone ordinals

 

ReadTextBlobFromXML is called for the older layout when IncludeAllOptionsInTmcOptions is false. An exception while decoding the date-format sequence replaces the entire sequence with defaultMinicalDateFormatSequence; this is not proof that every invalid ordinal is rejected. The surrounding reader marks CurrentScript for saving when available. The author confirms that no SaveTextBlobToXML override is implemented, so the call resolves to the supplied empty base method. Keep the current layout in existing exports rather than converting it to the legacy layout.

 

XML identity and composition

 

No literal rec_type value is emitted directly by the selected routines. A property envelope, an inherited writer or a delegated record can supply its identifying attributes.

 

Inherited implementation: TBtnEditProperty. Follow it when the ordered behavior invokes inherited methods; inherited fields are not repeated as locally owned fields.

 

Structures used directly by this XML implementation:

 

TmcOneLineTabsOptions

TmcOptions

TMinicalParagraphStyleRec

 

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.

 

Status

 

XML representation: The text of the Status element.

 

Writing: Stores strStatus when SaveNormally is false.

 

Import: This routine does not read this field. See the inherited or enclosing implementation where applicable.

 

XtagText/XtagText2330

 

XML representation: The text of the XtagText2330 element.

 

Initial value: an empty string (TMiniCalOptions.Create).

 

Reading: Reads the element into XtagText2330 when the record node exists.

 

Export: No corresponding write is implemented locally. This can be a compatibility input or a field handled elsewhere.

 

XtagText/XtagText2431

 

XML representation: The text of the XtagText2431 element.

 

Initial value: an empty string (TMiniCalOptions.Create).

 

Reading: Reads the element into XtagText2431 when the record node exists.

 

Export: No corresponding write is implemented locally. This can be a compatibility input or a field handled elsewhere.

 

strWeekdays1Selection

 

XML representation: The text of the strWeekdays1Selection element.

 

Initial value: an empty string (TMiniCalOptions.Create).

 

Reading: Reads the element into strWeekdays1Selection.

 

Export: No corresponding write is implemented locally. This can be a compatibility input or a field handled elsewhere.

 

strWeekdays2Selection

 

XML representation: The text of the strWeekdays2Selection element.

 

Initial value: an empty string (TMiniCalOptions.Create).

 

Reading: Reads the element into strWeekdays2Selection.

 

Export: No corresponding write is implemented locally. This can be a compatibility input or a field handled elsewhere.

 

DateFormatSequence

 

XML representation: The text of the DateFormatSequence element.

 

Reading: Reads the element into strDateFormatSequence. The subsequent conversion is shown in Implementation.

 

Export: No corresponding write is implemented locally. This can be a compatibility input or a field handled elsewhere.

 

Nested records and repeated elements

 

Operation

XML location

When it is processed

Read aPropValue.mcOptions

mcOptions

the record node exists

Write DataValue.mcOptions

mcOptions

SaveNormally is true

Read OneLineTabsOptions

OneLineTabsOptions

Whenever this part of the routine is reached

Read ParagraphStyleRec

ParagraphStyleRec

Whenever this part of the routine is reached

 

Initialization and reset values

 

TMiniCalOptions.Create

 

Setting or temporary variable

Initial value

When it is assigned

PropName

“Mini Calendars”

Always

Required

1

Always

Version

0

Always

XtagText2330

an empty string

Always

XtagText2431

an empty string

Always

strWeekdays1Selection

an empty string

Always

strWeekdays2Selection

an empty string

Always

PropValue.mcOptions

Default (TmcOptions)

Always

PropValue.mcOptions.SameOptionsForAllMinicals

true

Always

PropValue.mcOptions.WeekStart

1

Always

PropValue.mcOptions.RightToLeft

False

Always

PropValue.mcOptions.NextMonWeekNum

True

Always

PropValue.mcOptions.AlwaysNextMon

False

Always

PropValue.mcOptions.TwoDigitWeekNum

False

Always

PropValue.mcOptions.HasFiveWeeksOnly

False

Always

PropValue.mcOptions.MoreThanSevenDayHeaders

False

Always

PropValue.mcOptions.WeekNumsOnEveryDate

False

Always

PropValue.mcOptions.WeekNumWeekday

1

Always

PropValue.mcOptions.WeekNumPartialFirstWeekDefinition

0

Always

PropValue.mcOptions.WeekNumPartialLastWeekDefinition

0

Always

PropValue.mcOptions.WeekNumPartialFirstWeekAction

0

Always

PropValue.mcOptions.WeekNumPartialLastWeekAction

0

Always

PropValue.mcOptions.WeekNumPartialFirstWeekTabSize

0

Always

PropValue.mcOptions.WeekNumPartialLastWeekTabSize

0

Always

PropValue.mcOptions.ShowOutsideDayHeaders

True

Always

PropValue.mcOptions.DayHeadersUseDateFormatting

false

Always

PropValue.mcOptions.OutsideDayHeadersVisibility

odvFrontAndBack (0)

Always

PropValue.mcOptions.FiveWeekFontStyle

qppArial (2)

Always

PropValue.mcOptions.FiveWeekSolution

qfwsFraction (0)

Always

PropValue.mcOptions.DayHeadersToken

dht_4d (1)

Always

PropValue.mcOptions.Orientation

mcoHorizontal

Always

PropValue.mcOptions.HorMiniCalsBottomAligned

false

Always

PropValue.mcOptions.VertMiniCalsRightAligned

false

Always

PropValue.mcOptions.ShowWeeklyBandsForAllDatesOfSpread

false

Always

PropValue.mcOptions.CurWeekNumStyle

an empty set

Always

PropValue.mcOptions.OtherWeeksNumStyle

an empty set

Always

PropValue.mcOptions.FullyOutsideWeeksNumStyle

an empty set

Always

PropValue.mcOptions.CurDayHeaderStyle

an empty set

Always

PropValue.mcOptions.CurWeekNumStyle_Remove

an empty set

Always

PropValue.mcOptions.OtherWeeksNumStyle_Remove

an empty set

Always

PropValue.mcOptions.FullyOutsideWeeksNumStyle_Remove

an empty set

Always

PropValue.mcOptions.CurDayHeaderStyle_Remove

an empty set

Always

PropValue.mcOptions.CurWeek_AllSpread

False

Always

PropValue.mcOptions.CurWeekDefinition

cwdMinicalWS (1)

Always

PropValue.mcOptions.CurWeek_EvenOutsideDays

False

Always

PropValue.mcOptions.CurDay_AllSpread

False

Always

PropValue.mcOptions.CurDay_AllPage

False

Always

PropValue.mcOptions.CurDay_EvenOutsideDays

False

Always

PropValue.mcOptions.CurMonthStyle

an empty set

Always

PropValue.mcOptions.CurMonthStyle_Remove

an empty set

Always

PropValue.mcOptions.CurWeekStyle

an empty set

Always

PropValue.mcOptions.CurWeekStyle_Remove

an empty set

Always

PropValue.mcOptions.CurDaysStyle

an empty set

Always

PropValue.mcOptions.CurDaysStyle_Remove

an empty set

Always

PropValue.mcOptions.Hol1Style

an empty set

Always

PropValue.mcOptions.Hol1Style_Remove

an empty set

Always

PropValue.mcOptions.Hol2Style

an empty set

Always

PropValue.mcOptions.Hol2Style_Remove

an empty set

Always

PropValue.mcOptions.OutsideDaysStyle

an empty set

Always

PropValue.mcOptions.OutsideDaysStyle_Remove

an empty set

Always

PropValue.mcOptions.MoonPhasesStyle

an empty set

Always

PropValue.mcOptions.MoonPhasesStyle_Remove

an empty set

Always

PropValue.mcOptions.Alt1Style

an empty set

Always

PropValue.mcOptions.Alt1Style_Remove

an empty set

Always

PropValue.mcOptions.Alt2Style

an empty set

Always

PropValue.mcOptions.Alt2Style_Remove

an empty set

Always

PropValue.mcOptions.Weekdays1Style

an empty set

Always

PropValue.mcOptions.Weekdays1Style_Remove

an empty set

Always

PropValue.mcOptions.Weekdays2Style

an empty set

Always

PropValue.mcOptions.Weekdays2Style_Remove

an empty set

Always

PropValue.mcOptions.Weekdays1Selection_OLD

0

Always

PropValue.mcOptions.Weekdays2Selection_OLD

0

Always

PropValue.mcOptions.FiveWeekWrapStyle

an empty set

Always

PropValue.mcOptions.FiveWeekWrapStyle_Remove

an empty set

Always

DateFormatSequence

defaultMinicalDateFormatSequence

Always

PropValue.mcOptions

IniSettings.CurrentMiniCal.DataValue.mcOptions

UseIniSettingsInPropertyConstructor is true

XtagText2330

IniSettings.CurrentMiniCal.XtagText2330

UseIniSettingsInPropertyConstructor is true

XtagText2431

IniSettings.CurrentMiniCal.XtagText2431

UseIniSettingsInPropertyConstructor is true

strWeekdays1Selection

IniSettings.CurrentMiniCal.strWeekdays1Selection

UseIniSettingsInPropertyConstructor is true

strWeekdays2Selection

IniSettings.CurrentMiniCal.strWeekdays2Selection

UseIniSettingsInPropertyConstructor is true

PropValue.mcOptions.SameOptionsForAllMinicals

true

Always

PropValue.mcOptions.UsesNewFontSettings

false

Always

DataValue

PropValue

Always

 

This routine also calls inherited Create; OneLineTabsOptions.Initialize; ParagraphStyleRec.Initialize; NativeFractions.Initialize; PropValue.mcOptions.CurWeekNumFont.Initialize; PropValue.mcOptions.OtherWeeksNumFont.Initialize; PropValue.mcOptions.FullyOutsideWeeksNumFont.Initialize; PropValue.mcOptions.CurDayHeaderFont.Initialize; PropValue.mcOptions.CurMonthFontSettings.Initialize; PropValue.mcOptions.CurWeekFontSettings.Initialize; PropValue.mcOptions.CurDaysFontSettings.Initialize; PropValue.mcOptions.Hol1FontSettings.Initialize; PropValue.mcOptions.Hol2FontSettings.Initialize; PropValue.mcOptions.OutsideDaysFontSettings.Initialize; PropValue.mcOptions.MoonPhasesFontSettings.Initialize; PropValue.mcOptions.Alt1FontSettings.Initialize; PropValue.mcOptions.Alt2FontSettings.Initialize; PropValue.mcOptions.Weekdays1FontSettings.Initialize; PropValue.mcOptions.Weekdays2FontSettings.Initialize; PropValue.mcOptions.FiveWeekWrapFontSettings.Initialize; self.FillDisplayValue. See Implementation for their order and any conditional calls.

 

Value namespaces used by this implementation

 

These are declared Pascal ordinal values. Use the ordinal only where the field serializer actually writes ord(...), an integer cast or an equivalent value. Set-marker strings and local option lists have their own representation; sentinel members in an enum are not automatically legal XML choices.

 

TmcDateFormatZones

 

Ordinal

Declared member

0

mcdfzWeekdays

1

mcdfzCurMonth

2

mcdfzCurWeek

3

mcdfzCurDate

4

mcdfzWrapToTop

5

mcdfzHol1

6

mcdfzHol2

7

mcdfzOutsideDates

8

mcdfzMoonPhase

9

mcdfzAlt1

10

mcdfzAlt2

 

TOutsideDaysVisibility

 

Ordinal

Declared member

0

odvFrontAndBack

1

odvFrontOnly

2

odvBackOnly

3

odvCurWeekBefore

4

odvCurWeekAfter

5

odvCurrentWeek

6

odvMonthChangeBefore

7

odvMonthChangeAfter

8

odvMonthChange

9

odvMonthChangeBeforeAllWeek

10

odvMonthChangeAfterAllWeek

11

odvMonthChangeAllWeek

 

qppFiveWeekSolution

 

Ordinal

Declared member

0

qfwsFraction

1

qfwsWrapToTop

 

qppFiveWeekFractionStyle

 

Ordinal

Declared member

0

qppCourier

1

qppTimes

2

qppArial

3

qppXtags

4

qppNativeBottom

5

qppNativeTop

6

qppNativeTop00

 

TmcDayHeadersToken

 

Ordinal

Declared member

0

dht_3d

1

dht_4d

 

TmcCurWeekDefinition

 

Ordinal

Declared member

0

cwdMonday

1

cwdMinicalWS

2

cwdGridWS

3

cwdAllDatesOfSpread

 

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

XtagText2330

string

member

XtagText2431

string

member

strWeekdays1Selection

string

member

strWeekdays2Selection

string

member

OneLineTabsOptions

TmcOneLineTabsOptions

member

ParagraphStyleRec

TMinicalParagraphStyleRec

member

DateFormatSequence

TmcDateFormatSequence

member

NativeFractions

Tmc_2330_2431_Fractions

member

 

Implementation details

 

The Implementation toggle contains only TMiniCalOptions methods. Initializers and helpers belonging to other types are identified separately below. Shared XML-helper limitations are explained in Reading this reference.

 

Implementation