Just to elaborate a little more on Andreas Rejbrand's answer...
If you declare a local constant, it'll remain in compilation even if you declare the same values more than once.
These constants will be independent. In other words, if you write:
function Something;
const
Arr: array[0..100] of string = ('string1', 'string2'...);
begin
end;
function Otherhing;
const
Values: array[0..100] of string = ('string1', 'string2'...);
begin
end;
You'll get two sets of "string1" and "string2" in your compiled code.
If you change (in file or memory) one "string1" to "orange1" in one function, the other "string1" will remain the same.
There's no compiler optimization to "unify" those constants.
Aside from being a waste of code, if you have the same constant declared twice, it can become a mess if you change your code in one place and forget to check everywhere else.
In summary, if you have more than one place in your program where you'll use a constant, always consider declaring them global (or in the unit's scope) not locally.