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.
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!')