Чтение онлайн

на главную - закладки

Жанры

Delphi. Учимся на примерах

Парижский Сергей Михайлович

Шрифт:

Больше ничего добавлять на форму не нужно, и результат оформления должен соответствовать рис. 7.2.

Рис. 7.2. Форма блокнота-шифровальщика

Разработка программного кода

Шифровать текст будем с помощью функции xor или обычного смещения. Для того чтобы зашифрованные тексты нельзя было расшифровывать по шаблону, будем предлагать пользователю самому

выбирать число xor, на которое надо смещать символ.

Прежде всего объявите глобальную переменную xr_num типа string :

var

 Form1: TForm1;

 xr_num: string;

Теперь займемся командами меню. Обработчик события OnClick для пункта Файл→Открыть:

procedure TForm1.N1Click(Sender: TObject);

begin

 //начинаем обзор с текущей папки

 OpenDialog1.InitialDir:= GetCurrentDir;

 if not OpenDialog1.Execute then ShowMessage('File not selected!')

 else //загружаем выбранный файл в Memo

Memo1.Lines.LoadFromFile(OpenDialog1.FileName);

end;

Здесь мы открываем стандартное диалоговое окно обзора и просим пользователя выбрать текстовый или любой другой файл. После того как пользователь выбрал файл, загружаем его в нашу программу.

Обработчик события OnClick для пункта Файл→Сохранить:

procedure TForm1.N2Click(Sender: TObject);

begin

 SaveDialog1.InitialDir:= GetCurrentDir;

 if not SaveDialog1.Execute then ShowMessage('File not saved!')

 else //сохраняем в файл

Memo1.Lines.SaveToFile(SaveDialog1.FileName);

end;

Открываем диалоговое окно сохранения файла. После того как пользователь выбрал место сохранения файла, извлекаем текст из Memo и сохраняем его в выбранной папке.

Обработчик события OnClick для пункта Файл→Выход:

procedure TForm1.N4Click(Sender: TObject);

begin

 Close;//закрыть программу

end;

Обработчик события OnClick для пункта Правка→Число XOR:

procedure TForm1.XoR1Click(Sender: TObject);

begin

 if not InputQuery('XOR', 'Введите число xor:', xr_num)

 then Exit;

end;

Здесь мы

отображает окно для выбора числа xor. Указанное пользователем число будет занесено в переменную xr_num.

Обработчик события OnClick для пункта Правка→Зашифровать/Расшифровать:

procedure TForm1.N5Click (Sender: TObject);

var

 xr: string; //зашифрованный текст

 i: integer; //счетчик цикла begin

 for i:=1 to Length(Memo1.Text) do

 begin //перебираем каждый символ в тексте

//выполняем указанное пользователем смещение

xr:= xr + Chr(Ord(Memo1.Text[i]) xor StrToInt(xr_num));

 end;

 //заменяем оригинальный текст на зашифрованный

 Memo1.Text := xr;

end;

По этой команде меню выполняется шифрование текста, который сейчас находится в поле Memo. В цикле перебираются все символы, и каждый из них шифруется отдельно.

Обработчик события OnClick для пункта Правка→Очистить:

procedure TForm1.N8Click(Sender: TObject);

begin

 Memo1.lines.Clear; //очистка Memo

end;

Очищаем поле Memo от содержащегося в нем текста.

Обработчик события OnClick для пункта Формат→Перенос по словам:

procedure TForm1.N9Click(Sender: TObject);

begin

 if N9.Checked then //если флажок установлен

 begin

N9.Checked:= False; //сбрасываем флажок

//Отображаем горизонтальную полосу прокрутки

Memo1.ScrollBars:= ssBoth;

 end

 else begin //если флажок не установлен

N9.Checked:= True; //устанавливаем флажок

//убираем горизонтальную полосу прокрутки

Memo1.ScrollBars:= ssVertical;

end;

end;

По этой команде меню мы проверяем, какое состояние сейчас у пункта Формат→Перенос по словам. Если флажок установлен, то мы сбрасываем его и отображаем горизонтальную полосу прокрутки. В противном случае, устанавливаем флажок и убираем горизонтальную полосу прокрутки.

Поделиться:
Популярные книги

Зубных дел мастер

Дроздов Анатолий Федорович
1. Зубных дел мастер
Фантастика:
научная фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Зубных дел мастер

Бывшие. Война в академии магии

Берг Александра
2. Измены
Любовные романы:
любовно-фантастические романы
7.00
рейтинг книги
Бывшие. Война в академии магии

Идеальный мир для Лекаря 7

Сапфир Олег
7. Лекарь
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 7

Возвышение Меркурия. Книга 3

Кронос Александр
3. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 3

Кодекс Охотника. Книга X

Винокуров Юрий
10. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
6.25
рейтинг книги
Кодекс Охотника. Книга X

Хозяин Теней

Петров Максим Николаевич
1. Безбожник
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Хозяин Теней

Опасная любовь командора

Муратова Ульяна
1. Проклятые луной
Фантастика:
фэнтези
5.00
рейтинг книги
Опасная любовь командора

Друд, или Человек в черном

Симмонс Дэн
Фантастика:
социально-философская фантастика
6.80
рейтинг книги
Друд, или Человек в черном

Волхв

Земляной Андрей Борисович
3. Волшебник
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Волхв

Мастер Разума VII

Кронос Александр
7. Мастер Разума
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Мастер Разума VII

Всемирная энциклопедия афоризмов. Собрание мудрости всех народов и времен

Агеева Елена А.
Документальная литература:
публицистика
5.40
рейтинг книги
Всемирная энциклопедия афоризмов. Собрание мудрости всех народов и времен

Сумеречный Стрелок 5

Карелин Сергей Витальевич
5. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный Стрелок 5

Морской волк. 1-я Трилогия

Савин Владислав
1. Морской волк
Фантастика:
альтернативная история
8.71
рейтинг книги
Морской волк. 1-я Трилогия

Прогрессор поневоле

Распопов Дмитрий Викторович
2. Фараон
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Прогрессор поневоле