unit MainForm; {$mode delphi} {$codepage UTF8} interface uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls, EditBtn, ComCtrls, Spin, windows, SimplyJSON; type { TMainFrm } TMainFrm = class(TForm) WriteBtn: TButton; ExitBtn: TButton; bValueEd: TComboBox; iValueEd: TSpinEdit; sValueEd: TEdit; JSONFileNameEd: TFileNameEdit; JSONFileNameEdLbl: TLabel; KeyEdt: TLabeledEdit; BooleanSht: TTabSheet; ValueEdLbl: TLabel; StringSht: TTabSheet; IntegerSht: TTabSheet; ValuePages: TPageControl; RecTypeEd: TRadioGroup; procedure ExitBtnClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure RecTypeEdSelectionChanged(Sender: TObject); procedure WriteBtnClick(Sender: TObject); private public end; var MainFrm: TMainFrm; implementation {$R *.lfm} { TMainFrm } procedure TMainFrm.ExitBtnClick(Sender: TObject); begin Application.Terminate; end; procedure TMainFrm.FormCreate(Sender: TObject); begin RecTypeEd.ItemIndex:= 0; ValuePages.ActivePage:= StringSht; end; procedure TMainFrm.RecTypeEdSelectionChanged(Sender: TObject); begin case RecTypeEd.ItemIndex of 0: ValuePages.ActivePage:= StringSht; 1: ValuePages.ActivePage:= IntegerSht; 2: ValuePages.ActivePage:= BooleanSht; end; end; procedure TMainFrm.WriteBtnClick(Sender: TObject); begin if Trim(JSONFileNameEd.Text) = '' then begin Application.MessageBox(PChar('Поле "Имя файла" не заполнено!'), PChar('Ошибка!'), MB_ICONERROR); Abort; end; if Trim(KeyEdt.Text) = '' then begin Application.MessageBox(PChar('Поле "Ключ" не заполнено!'), PChar('Ошибка!'), MB_ICONERROR); Abort; end; case RecTypeEd.ItemIndex of 0: JSWriteString(KeyEdt.Text, sValueEd.Text, JSONFileNameEd.Text); 1: JSWriteInteger(KeyEdt.Text, iValueEd.Value, JSONFileNameEd.Text); 2: JSWriteBoolean(KeyEdt.Text, (bValueEd.ItemIndex = 0), JSONFileNameEd.Text); end; Application.MessageBox(PChar('Выполнено!'), PChar('Информация'), MB_ICONASTERISK); end; end.