At this point… I’m beating a dead horse. My previous post about this. I found another book “Object Pascal Handbook” by Marco Cantù. He includes a note in his constants section (He describes it as odd)…
Oddly enough, Object Pascal does allow you to change the value of a typed constant at run-time,
as if it was a variable but only if you enable the $J compiler directive, or use the corresponding
Assignable typed constants compiler option. This optional behavior is included for backward
compatibility of code which was written with an old compiler. This is clearly not a suggested coding style, and I’ve covered it in this note most as a historical anecdote about such programming
techniques.
However he is slightly wrong also, because he says “only if you enable the $J compiler directive”. Which is not true, because the default behavior (not optional) is to allow this odd behavior. You have to disable this behavior by including the “{$J-}” compiler directive.