Описание:
Ключевое слово Const используется для открытия
секции определения констант.
Секция завершается
следующим ключевым словом в программе.
Внутри
этой секции могут быть определены одна или более констант. Это может быть набор
из обычных и типизированных констант:
1.
Обычные константы
Они сопоставляют имя Name1
фиксированному выражению Expression1. Выражение должно быть одного из следующих
типов:
Целое число
Число с плавающей запятой
Символ
Строка
Множество
Перечисление
2.
Типизированные константы
Они очень странные.
Являются константами только в смысле того, что их значение сохраняется в любой
части программы. Также они могут быть изменены (до тех пор, пока Директива
компилятора {WriteableConst} установлена в On). Они используются, например, в
тех случаях, когда подпрограмме необходимо сохранять значения между вызовами.
Для сохранения данных между вызовами лучше все же использовать
объектно-ориентированные принципы.
3.
Параметры-константы подпрограмм >
При передаче
данных подпрограмме (функции или процедуре), вы можете ставить в начале
определения параметра Const, для того чтобы значение никогда не изменилось. Это
существенно увеличивает производительность, делает более ясными все операции
подпрограмм, и предотвращает случайные изменения значения этого параметра.
Пример кода:
Const
MAX_LINES = 3;
CRUDE_PI = 22/7;
HELLO = 'Hello World';
LETTERS = ['A'..'Z', 'a'..'z'];
DECISION =
True;
var
i : Integer;
begin
// Display our crude value of Pi
ShowMessage('Crude Pi =
'+FloatToStr(CRUDE_PI));
// Say hello to the WOrld
ShowMessage(HELLO);
// Display MAX_LINES
of data
for i := 1 to MAX_LINES do
begin
// Do some checking - note that Char(i+64) = 'A'
if DECISION and (Char(i+63) in LETTERS)
then ShowMessage(Char(i+63)+' is a letter')
else ShowMessage(Char(i+63)+' is not a letter');
end;
end;
Результат выполнения:
Crude Pi = 3.14285714285714
Hello World
@ is not a letter
A is a letter
B is a letter
Пример кода:
var
i : Integer;
begin
for i := 1 to 8 do
ShowMessage('Number = '+IntToStr(GetNextNumber));
end;
// Get the
next number from a given sequence
function TForm1.GetNextNumber: Integer;
type
// Define a range of numbers returnable by this
routine
TNumbers = 0..5;
Const
// A
typed constant is really a persistent variable :
// It's value
is preserved across calls to this routine.
{$WriteableConst On}
nextNumber : TNumbers = 0; // Start at the beginning
begin
// Return the current value
result := nextNumber;
// Increment to the next value
nextNumber := (nextNumber + 1) MOD 6;
end;
Результат выполнения:
Number = 0
Number = 1
Number = 2
Number = 3
Number = 4
Number = 5
Number = 0
Number = 1