Листинг 12.14.
Функция получения ключа
function TfmCryptography.GetKey: Integer;
var
key, code: Integer;
begin
Result := –1;
//получаем текст элемента управления текстовая строка
Val(edKey.Text, key, code);
//ошибка во время преобразования к целому числу?
//или ключ имеет отрицательное значение?
if (code = 0) and (0 < key) then
Result := key;
end;
Процедура RecalcAlphabet имеет один параметр nKey, который принимает любое целое значение. Он показывает, на сколько требуется сдвинуть алфавит циклически вперед, то есть если имеется алфавит АБВГД, а пКеу=3, то результатом будет ВГДАБ. Первым делом алфавит соответствия заполняется один к одному, то есть каждый символ соответствует сам себе. После этого циклом проходимся по строке, содержащей весь необходимый алфавит, подлежащий сдвигу, и переназначаем соответствие этих букв смещенным. Как это делается, можно посмотреть в листинге 12.15.