This topic covers the implementation details of TqppStringProperty.
Scope: cStringProperty.pas; class derived from TSL_Property. Prepared from the curated implementation supplied for this review on 2 October 2026.
StrValue is read from node.Text and written directly to node.Text. The underlying TSL_PropValue.StrValue accessor uses a fixed character buffer. Its StringToArray/ArrayToString helpers were not supplied, so usable length and low-level escaping/truncation remain unresolved.
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.
StrValue
XML representation: The text of the StrValue element.
Initial value: PropValue (TqppStringProperty.Create).
Reading: Reads node.Text into aPropValue.StrValue when the record node exists.
Writing: Stores DataValue.StrValue whenever the writer reaches this field.
Initialization and reset values
TqppStringProperty.Create
Setting or temporary variable |
Initial value |
When it is assigned |
PropValue.PropertyType |
ptString |
Always |
PropValue.StrValue |
an empty string |
Always |
DataValue |
PropValue |
Always |
peEditValueIN |
an empty string |
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 |
peEditValueIN |
string |
member |
The Implementation toggle contains only TqppStringProperty methods. Initializers and helpers belonging to other types are identified separately below. Shared XML-helper limitations are explained in Reading this reference.