This topic covers the implementation details of TBtnEditProperty.
Scope: cBtnEditProperty.pas; class derived from TSL_Property. Prepared from the curated implementation supplied for this review on 2 October 2026.
This supporting base class reads Version when present. It inherits the property envelope writer. Its constructor creates the text-blob list, sets Version=0 and clears the modified flag. No local SaveToXML implementation is supplied; follow TSL_Property for the inherited envelope.
Notation and shared helper rules: Reading this reference.
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: TSL_Property. Follow it when the ordered behavior invokes inherited methods; inherited fields are not repeated as locally owned fields.
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.
Version
XML representation: The text of the Version element.
Initial value: 0 (TBtnEditProperty.Create).
Reading: Converts the stored text to a number and assigns it to Version when the record node exists.
Export: No corresponding write is implemented locally. This can be a compatibility input or a field handled elsewhere.
Initialization and reset values
TBtnEditProperty.Create
Setting or temporary variable |
Initial value |
When it is assigned |
Version |
0 |
Always |
ListTextBlobProps |
THashedStringList.Create |
Always |
FWasModified |
false |
Always |
This routine also calls inherited Create. See Implementation for their order and any conditional calls.
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 |
ListTextBlobProps |
THashedStringList |
member |
Version |
integer |
member |
The Implementation toggle contains only TBtnEditProperty methods. Initializers and helpers belonging to other types are identified separately below. Shared XML-helper limitations are explained in Reading this reference.