:
>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;
По этой команде меню мы проверяем, какое состояние сейчас у пункта Формат→Перенос по словам. Если флажок установлен, то мы сбрасываем его и отображаем горизонтальную полосу прокрутки. В противном случае, устанавливаем флажок и убираем горизонтальную полосу прокрутки.
Обработчик события OnClick для пункта Формат→Шрифт:
>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;
Перед тем как открыть диалоговое окно выбора шрифта, мы определяем все текущие настройки шрифта, чтобы затем отобразить их в диалоговом окне. После того как пользователь нажал в этом окне кнопку OK, все выбранные настройки шрифта применяются к полю Memo.
Теперь осталось только реализовать автоматическую загрузку файлов, связанных с нашим блокнотом в файл-менеджерах. Для этого создадим обработчик события OnCreate главной формы:
>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;
Здесь мы задаем начальное значение для смещения и проверяем, поступили ли на вход программы какие-либо параметры. Если да, то узнаем путь к файлу и отображаем его содержимое в поле Memo. Пример шифрования со смещением 10 представлен на рис. 7.3.
Рис. 7.3. Пример шифрования со смещением 10
Полный исходный код модуля
Полный исходный код модуля программы Блокнот-шифровальщик представлен в листинге 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;