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

Полный исходный код модуля

Полный исходный код модуля

Полный исходный код модуля программы Блокнот-шифровальщик представлен в листинге 7.1.

Листинг 7.1. Модуль программы Блокнот-шифровальщик

unit Unit1
interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls Forms, Dialogs, StdCtrls, Menus;
type TForm1 = class(TForm)
 Memo1: TMemo;
 menu1: TMainMenu;
 File1: TMenuItem;
 Edit1: TMenuItem;
 N1: TMenuItem;
 N2: TMenuItem;
 N3: TMenuItem;
 N4: TMenuItem;
 N5: TMenuItem;
 N7: TMenuItem;
 N8: TMenuItem;
 OpenDialog1: TOpenDialog;
 SaveDialog1: TSaveDialog;
 FontDialog1: TFontDialog;
 N6: TMenuItem;
 N9: TMenuItem;
 N10: TMenuItem;
 XoR1: TMenuItem;
 procedure N1Click(Sender: TObject);
 procedure N2Click(Sender: TObject)
 procedure N4Click(Sender: TObject)
 procedure N8Click(Sender: TObject)
 procedure N5Click(Sender: TObject)
 procedure N9Click(Sender: TObject);
 procedure N10Click(Sender: TObject);
 procedure FormCreate(Sender: TObject);
 procedure XoR1Click(Sender: TObject);
private
 { Private declarations }
public
 { Public declarations }
end;
var
 Form1: TForm1;
 xr_num: string;
implementation
{$R *.dfm}
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;
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;
procedure TForm1.N4Click(Sender: TObject);
begin
 Close; //выход из программы
end;
procedure TForm1.N8Click(Sender: TObject);
begin
 Memo1.lines.Clear; //очистка Memo
end;
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;
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;
procedure TForm1.N10Click(Sender: TObject);
begin
 //Определяем все настройки шрифта и отображаем их
 //в диалоговом окне
 FontDialog1.Font.Color:= Memo1.Font.Color; //цвет шрифта
 FontDialog1.Font.Style:= Memo1.Font.Style; //стиль
 FontDialog1.Font.Size:= Memo1.Font.Size; //размер
 FontDialog1.Font.Charset:= Memo1.Font.Charset; //кодировка
 FontDialog1.Font.Name:= Memo1.Font.Name; //название шрифта
 if FontDialog1.Execute then
 begin // применяем все выбранные настройки
  Memo1.Font.Color:= FontDialog1.Font.Color;
  Memo1.Font.Style:= FontDialog1.Font.Style;
  Memo1.Font.Size:= FontDialog1.Font.Size;
  Memo1.Font.Charset:= FontDialog1.Font.Charset;
  Memo1.Font.Name:= FontDialog1.Font.Name;
 end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
 Str: String; //путь к параметру
 i: Integer;
begin
 xr_num := '2'; //по умолчанию смещение = 2
 if (ParamCount > 0) then begin
  Str:= ParamStr(1); //Формируем путь к аргументу
  for i:=2 to ParamCount do Str:= Str + ' ' + ParamStr(i);
 end;
 {Если на вход программы поступили параметры, то отображаем содержимое соответствующего файла в поле Memo}
 if Str <> '' then Memo1.Lines.LoadFromFile(str);
end;
end.

? Все файлы проекта и исполняемый файл рассмотренной программы находятся на прилагаемом к книге компакт-диске в папке Chapter_07.

Оглавление книги


Генерация: 0.035. Запросов К БД/Cache: 0 / 0
поделиться
Вверх Вниз