Можно ли изменять значения типизированных констант в Delphi

введите сюда описание изображения

Правильно ли я понимаю, что изменять значение типизированной константы можно только если скорректировать настройки компилятора(или использовать директивы)?


Ответы (1 шт):

Автор решения: Alekcvp

Можно, для этого есть три варианта.

Первый: в настройках компилятора включить writable constants.

Второй, полезный для хранения всяких настроек:

unit settings;

interface

const 
  AppSettings: TSettringsRec = ({тут значения по умолчанию});

implementation

var
  LAppSettings: TSettringsRec absolute AppSettings;

// тут можно писать в переменную LAppSettings, а всё остальное приложение будет 
// читать из константы AppSettings.

(*) возможно этот вариант будет работать не во всех версиях Delphi.

Третий - это хак и к использованию не рекомендуется:

type 
  PDate = ^Date;

....
  PDate(@day)^.First := 7;
→ Ссылка