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.