Zitat von
RSE:
Von welchem Typ ist dann eigentlich ['a', 'ß', '0']? Geht das ab D2009 auch nicht mehr?
Set of Char wird automatisch auf Set of AnsiChar gekürzt.
['a', 'ß', '0'] bleibt unter Delphi 2009/2010 ein AnsiCharSet, bzw. es gibt einen Typen dafür
TSysCharSet.
Der ShortString, String[x] und das CharSet bleiben also weiterhin nur
ANSI.
(darum auch der in Beitrag #6 verlinkte Code)
Zitat von
RSE:
Fehler: Der linken Seite kann nichts zugewiesen werden
Der Linken seite konnte hier noch nie was zugewiesen werden, nur daß die alten Kompiler es noch nicht gesagt hatten.
Dieses Verhalten wird auch immer mal wieder hier im Forum genannt.
Es wird entweder eine Getter oder eine Setter aufgerufen.
Neu.MyKeys.xxx ruft den Getter auf, damit weiter auf .Keys zugegriffen werden kann.
Delphi-Quellcode:
Neu.MyKeys.Keys := [];
// wird also zu
DemphiinterneTemporäreVariable := Neu.MyKeys; // bzw. Neu.GetMyKeys
DemphiinterneTemporäreVariable.Keys := [];
Tja, und nun rate mal, was mit dem zugewiesenem Wert passiert?
Genau ... nix, denn die TempVar wird irgendwann wieder gelöscht und im Property ändert sich nix.
Und darum warnt jetzt Delphi davor.