Delphi Compiler Error
X1012 Constant expression violates subrange bounds
Reason for the Error & Solution
This error message occurs when the compiler can determine that a constant is outside the legal range. For example, if you assign a value to an variable that is higher than MaxInt
, you trigger this error.
Subranges Example
This can occur for instance if you assign a constant to a variable of subrange type.
The following example code triggers this error message:
program Produce;
var
Digit: 1..9;
begin
Digit := 0;
end.
To fix this issue, you must either include the assigned value in the range:
program Solve;
var
Digit: 0..9;
begin
Digit := 0;
end.
Alternatively, change the assignment so that the assigned value is within the legal range:
program Solve;
var
Digit: 1..9;
begin
Digit := 1;
end.