Zmiana danych w TFPGMap

0

Cześć,
natrafiłem ostatnio na przeszkodę. Mam stworzony słownik w ten sposób:

 
type 
TRekord = record
jeden:string;
dwa:string;

  TMapa=specialize TFPGMap<string,TRekord>;

var
Mapa:TMapa;

Kiedy Data jest typu np. string moge bez problemu modyfikowac dane w istniejacych pozycjach. Kiedy jednak chce zmienic dane w strukturze jak powyzsza za pomoca:

Mapa[i].jeden:='nowa wartosc';

otrzymuje error
Error: Argument cannot be assigned to

oczywiscie moge to obejsc stosujac:

var
tmp:TRekord
begin
tmp.jeden:='nowa wartosc';
(..)

Mapa[i]:=tmp;

jednak zastanawiam się dlaczego nie mam dostępu do możliwości modyfikacji bezpośrednio wartości w rekordzie. Wynika to po prostu z budowy tej klasy i trzeba robić zmiany z pomocą zmiennej pomocniczej? Bardzo proszę o wyjaśnienie :)

1

Wynika to z budowy tej klasy; coś analogicznego możesz sobie odtworzyć w ten sposób:
http://ideone.com/gKJPFI

0

szukałeś i nigdzie nie było... A to nie jest błąd tylko tak to działa http://stackoverflow.com/questions/620506/left-side-cannot-be-assigned-to-for-record-type-properties-in-delphi

1 użytkowników online, w tym zalogowanych: 0, gości: 1