unit Main; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) edtQty: TEdit; Label1: TLabel; edtPrice: TEdit; Label2: TLabel; edtExVat: TEdit; btnCost: TButton; Label3: TLabel; Label4: TLabel; edtVat: TEdit; Label5: TLabel; edtVatInc: TEdit; btnAdd: TButton; btnClear: TButton; btnSubTotal: TButton; btnCancel: TButton; btnClearMemory: TButton; edtChange: TEdit; edtCash: TEdit; btnChange: TButton; Label7: TLabel; Label6: TLabel; procedure btnCostClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure btnAddClick(Sender: TObject); procedure btnSubTotalClick(Sender: TObject); procedure btnClearClick(Sender: TObject); procedure btnCancelClick(Sender: TObject); procedure btnClearMemoryClick(Sender: TObject); procedure btnChangeClick(Sender: TObject); private rladd: real; rlvatinc: real; public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.btnCostClick(Sender: TObject); var errorQty,errorPrice,intQty : Integer; rlExVat,rlVat,rlPrice : Real; strVatInc,strExVat,strVat: string; begin val (edtQty.text, intQty, errorQty); if edtQty.text ='' then begin showmessage('Please enter the Quantity'); exit; end; if errorQty <> 0 then begin showmessage('Please Enter the Correct Quantity'); exit; end; val (edtPrice.text, rlPrice, errorPrice); if edtPrice.text ='' then begin showmessage('Please enter the price'); exit; end; if errorPrice <> 0 then begin showmessage('Please type in the Correct Price'); exit; end; rlExVat := intQty * rlPrice; rlVat := rlExVat * 0.175; rlVatInc := rlExVat + rlVat; str(rlExVat:0:2, strExVat); edtExVat.text := strExVat; str(rlVat:0:2,strVat); edtVat.text:= strVat; str(rlVatInc:0:2,strVatInc); edtVatInc.text:= strVatInc; end; procedure TForm1.FormCreate(Sender: TObject); begin rlAdd := 0.0; btnSubTotal.Enabled := True; btnSubTotal.Enabled := False; end; procedure TForm1.btnAddClick(Sender: TObject); var rlVatInc: Real; error: integer; begin val(edtVatInc.Text, rlVatInc, error); rlAdd := rlAdd + rlVatInc; btnSubTotal.Enabled := true; end; procedure TForm1.btnSubTotalClick(Sender: TObject); var strVatInc: string; begin str(rlAdd:0:2, strVatInc); edtVatInc.Text := strVatInc; end; procedure TForm1.btnClearClick(Sender: TObject); begin edtExVat.clear; edtVat.clear; edtPrice.clear; edtQty.clear; edtVatInc.text := '0.0'; end; procedure TForm1.btnCancelClick(Sender: TObject); var rlVatInc: real; error: integer; begin val(edtVatInc.Text, rlVatInc, error); rlAdd := rlAdd - rlVatInc; btnSubTotal.Enabled := true; end; procedure TForm1.btnClearMemoryClick(Sender: TObject); begin rlAdd := 0.0; end; procedure TForm1.btnChangeClick(Sender: TObject); var rlChange,rlCash: Real; errorCash: Integer; strChange: String; begin val (edtCash.text, rlCash, errorCash); if edtCash.text ='' then begin showmessage('Please enter the Quantity'); exit; end; if errorcash <> 0 then begin showmessage('Please Enter the Correct Quantity'); exit; end; rlChange:= rlCash - rlVatInc ; str(rlChange:0:2,strChange); edtChange.text:= strChange; end; end.