В старый день паскаль / delphi, когда вы написали:
const
A : Integer = 5;
Вы не определили константу, но инициализировали переменную.
Вы можете определить без проблем:
const
A : array [1..2] of string = ('a', 'b');
Но строки тоже должны быть константами. Они должны быть известны во время компиляции.
То же самое относится к:
var
A : array [1..2] of string = ('a', 'b');
Так что вы не можете написать:
var
B : string = 'hi';
A : array [1..2] of string = (B, 'b');
Потому что B - это вар. Но вы можете написать:
const
B = 'hi'; // Even a typed constant does not work.
var
A : array [1..2] of string = (B, 'b');
Обратите внимание, что опция «Назначаемые типизированные константы» (по умолчанию false) предоставляется для создания констант старого типа, которые можно назначать. Это просто для обратной совместимости, потому что вы действительно хотите, чтобы ваши константы были постоянными.