Wenn es den Eintrag gibt, dann ist es so OK.
Statt '=' kannst/solltest du aber SL.NameValueSeparator nutzen,
falls es mal was Anderes ist.
Ich würde mal einen FeatureRequest zu erstellen, damit man das Löschen in der Liste deaktivieren kann, oder es ein eine Art
SL.ValuesNotDeleteIfEmpty[name] :=
gibt.
Außerdem wollte ich eh mal einen 20 Jahre alten Bug beheben lassen.
Dieses blöde ValueFromIndex wurde ja nur erfunden, weil man ursprünglich (bis Delphi 7 oder so) die Default-Property und Array-Property nicht überladen konnte,
aber seit 15-20 Jahren geht es ja nun direkt
Delphi-Quellcode:
property Values[const Name: string]: string read GetValue write SetValue;
property Values[Index: Integer]: string read GetValueFromIndex write SetValueFromIndex; // das hier neu
property ValueFromIndex[Index: Integer]: string read GetValueFromIndex write SetValueFromIndex; // anstatt ähhhhhhhh, zusätzlich zu dem