Property do pola obiektu typu rekordowego

Property do pola obiektu typu rekordowego
m_Lesiu
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 138
0
Kopiuj
type 
   TDane = record
     a: integer;
     b: integer;
     c: integer; 
   end;
 
property dane: TDane read FDane write FDane;

taka sytuacja.

w starszych wersjach mogłem uczynić

Kopiuj
dane.a := 666;

w nowych takie przypisanie wywala errora 'Left side cannot be assigned'.

Czy istnieje mozliwość przestawienia ustawień Delphi ( XE2 ), żeby zmienić mu politykę property na tą ze starszych wersji ?

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

Z tego co wiem nie ma takiej opcji, musisz wykonać trzy przypisania.

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
1

Owszem ten zapis:

Kopiuj
dane.a := 666;

w starszych wersjach był możliwy lecz nic nie robił, ponieważ właściwość dane zwracała (i w nowych wersjach nadal zwraca kopię składowej FDane) zaś zmiana kopii nie powoduje zmiany oryginału.
W nowszych wersjach dostajesz błąd bo to jest błąd.
Zamień strukturę na klasę i zadziała poprawnie i automagicznie.

m_Lesiu
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 138
0

problem w tym, że to nie mój kod. Tylko zaciągnięta z neta biblioteka w której jest masa tak używanych property.

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
1

Po linii najmniejszego oporu, zrób FDane publiczne i niech wszystko odnosi się do FDane, skoro tak.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.