unit MainForm;
{$mode delphi}
{$codepage UTF8}
interface
uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls, EditBtn, windows, SimplyJSON;
type
  { TMainFrm }
  TMainFrm = class(TForm)
    FontDialog: TFontDialog;
    SelectFontBtn: TButton;
    FontDemoLbl: TLabel;
    WriteBtn: TButton;
    ExitBtn: TButton;
    JSONFileNameEd: TFileNameEdit;
    JSONFileNameEdLbl: TLabel;
    KeyEdt: TLabeledEdit;
    ReadBtn: TButton;
    procedure ExitBtnClick(Sender: TObject);
    procedure ReadBtnClick(Sender: TObject);
    procedure SelectFontBtnClick(Sender: TObject);
    procedure WriteBtnClick(Sender: TObject);
  private
  public
    function CheckReqs: Boolean;
  end;
var
  MainFrm: TMainFrm;
implementation
{$R *.lfm}
{ TMainFrm }
function TMainFrm.CheckReqs: Boolean;
begin
Result:= True;
if Trim(JSONFileNameEd.Text) = '' then
 begin
 Application.MessageBox(PChar('Поле "Имя файла" не заполнено!'), PChar('Ошибка!'), MB_ICONERROR);
 Result:= False;
 end;
if Trim(KeyEdt.Text) = '' then
 begin
 Application.MessageBox(PChar('Поле "Ключ" не заполнено!'), PChar('Ошибка!'), MB_ICONERROR);
 Result:= False;
 end;
end;
procedure TMainFrm.ExitBtnClick(Sender: TObject);
begin
Application.Terminate;
end;
procedure TMainFrm.ReadBtnClick(Sender: TObject);
begin
if not CheckReqs then
 Exit;
FontDemoLbl.Font:= JSReadFont(KeyEdt.Text, FontDemoLbl.Font, JSONFileNameEd.Text);
Application.MessageBox(PChar('Шрифт загружен из файла!'), PChar('Информация'), MB_ICONASTERISK);
end;
procedure TMainFrm.SelectFontBtnClick(Sender: TObject);
begin
FontDialog.Font:= FontDemoLbl.Font;
if FontDialog.Execute then
 FontDemoLbl.Font:= FontDialog.Font;
end;
procedure TMainFrm.WriteBtnClick(Sender: TObject);
begin
if not CheckReqs then
 Exit;
JSWriteFont(KeyEdt.Text, FontDemoLbl.Font, JSONFileNameEd.Text);
Application.MessageBox(PChar('Шрифт записан в файл!'), PChar('Информация'), MB_ICONASTERISK);
end;
end.
