Ryan Joseph via fpc-pascal <fpc-pascal@lists.freepascal.org> schrieb am Mo., 2. März 2020, 22:47:
> In the snippet below why isn't it an error to write to a field of the > read-only property? I was hoping this would give me some type safety but it > just writes to a temp variable and does nothing. Not very helpful if you > ask me. > > > ========================= > > type > TSheet = record > m_tableSize: TVec2i; > function GetTableSize: TVec2i; > property TableSize: TVec2i read GetTableSize; > end; > > var > sheet: TSheet; > begin > // why isn't this an error? > sheet.x := 1; > end; > I assume you mean "sheet.TableSize.x"? Otherwise your example makes no sense... In that case: you are working on a temporary copy of the record. It does not affect the TSheet instance anymore (that's essentially the same reason why C operators or var parameters are not allowed for properties). Regards, Sven >
_______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal