unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button3: TButton;
    ed1: TEdit;
    ed2: TEdit;
    ed3: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    edByteCount: TEdit;
    Label4: TLabel;
    edBase64: TEdit;
    Label5: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure ed1KeyPress(Sender: TObject; var Key: Char);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Base64Unit;

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
Var
Base64:TBase64;
begin
Base64.ByteArr[0]:=StrToInt(ed1.Text);
Base64.ByteArr[1]:=StrToInt(ed2.Text);
Base64.ByteArr[2]:=StrToInt(ed3.Text);
Base64.ByteCount:=StrToInt(edByteCount.Text);
edBase64.Text:=CodeBase64(Base64);
end;

procedure TForm1.Button3Click(Sender: TObject);
Var
Base64:TBase64;
begin
If edBase64.Text='' Then Exit;
If Not(Length(edBase64.Text)= 4) Then
Begin {If Length}
ShowMessage('Кодированный base64-текст должен содержать 4 символа!');
Exit;
End;  {If Length}

Base64:=DecodeBase64(edBase64.Text);
ed1.Text:=IntToStr(Base64.ByteArr[0]);
ed2.Text:=IntToStr(Base64.ByteArr[1]);
ed3.Text:=IntToStr(Base64.ByteArr[2]);
edByteCount.Text:=IntToStr(Base64.ByteCount);
end;

procedure TForm1.ed1KeyPress(Sender: TObject; var Key: Char);
begin
If Not((Key In ['0'..'9']) OR (Key=CHR(8))) Then
Key:=CHR(7);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Application.Title:='Base64 code example';
end;

end.
