Підкажіть, де тут помилка?

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Label3: TLabel;
    Edit2: TEdit;
    Label4: TLabel;
    Edit3: TEdit;
    Label5: TLabel;
    Edit4: TEdit;
    Button1: TButton;
    Label6: TLabel;
    Edit5: TEdit;
    Label7: TLabel;
    Edit6: TEdit;
    Label8: TLabel;
    Edit7: TEdit;
    Label9: TLabel;
    Edit8: TEdit;
    Label10: TLabel;
    Edit9: TEdit;
    Button2: TButton;
    Label11: TLabel;
    Edit10: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit3KeyPress(Sender: TObject; var Key: Char);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
    procedure Edit4KeyPress(Sender: TObject; var Key: Char);
    procedure Edit5KeyPress(Sender: TObject; var Key: Char);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;  a,b,c,d,s,s1,s2,p1,p2,a1,a2,b1,b2,c1,c2,d2,d1,dg,dg1:Real;

implementation

{$R *.dfm}


procedure TForm1.Button1Click(Sender: TObject);
begin
if ((Edit1.text='') or (Edit2.Text='')or (Edit3.Text='') or (Edit4.Text='')
or(Edit5.text='') or (Edit6.text='') or (Edit7.text='') or (Edit8.text='')
or (Edit9.Text='')) then begin
  showMessage('Ââåä³òü äàí³');
 Edit1.SetFocus;
 exit;
 end;
a1:=StrToFloat(Edit1.Text);
a2:=StrToFloat(Edit2.Text);
b1:=StrToFloat(Edit3.Text);
b2:=StrToFloat(Edit4.Text);
c1:=StrToFloat(Edit5.Text);
c2:=StrToFloat(Edit6.Text);
d1:=StrToFloat(Edit7.Text);
d2:=StrToFloat(Edit8.Text);
dg:=StrToFloat(Edit9.Text);
a:=Sqrt(sqr(b1-a1)+sqr(b2-a2));
b:=Sqrt(sqr(c1-b1)+sqr(c2-b2));
c:=Sqrt(sqr(d1-c1)+sqr(d2-c2));
d:=Sqrt(sqr(a1-d1)+sqr(a2-d2));
p1:=(a+b+dg)/2;
s1:=Sqrt(p1*(p1-a)*(p1-b)*(p1-dg));
p2:=(c+d+dg)/2;
s2:=Sqrt(p2*(p2-c)*(p2-d)*(p2-dg));
s:=s1+s2;
ShowMessage('Ïëîùà ÷îòèðèêóòíèêà= '+FloatToStr(s));
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  case Key of
  #8,'0'..'9' :  ; // öèôðû è <Back Space>

       '.',',':
                begin
                  if Key <> DecimalSeparator then
                  Key := DecimalSeparator;
                  if Pos(DecimalSeparator,Edit1.Text) <> 0
                  then  begin  Key := Chr(0);
                  ShowMessage('Âæå ââåäåííî êîìó');
                  end;
                end;
           '-':
                if Length(Edit1.Text) <> 0
                      then Key := Chr(0);

        else
               key := Chr(0);
    end;

end;

procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
  case Key of
  #8,'0'..'9' :  ; // öèôðû è <Back Space>

       '.',',':
                begin
                  if Key <> DecimalSeparator then
                  Key := DecimalSeparator;
                  if Pos(DecimalSeparator,Edit3.Text) <> 0
                  then  begin  Key := Chr(0);
                  ShowMessage('Âæå ââåäåííî êîìó');
                  end;
                end;
           '-':
                if Length(Edit3.Text) <> 0
                      then Key := Chr(0);

        else
               key := Chr(0);
    end;
end;

procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
  case Key of
  #8,'0'..'9' :  ; // öèôðû è <Back Space>

       '.',',':
                begin
                  if Key <> DecimalSeparator then
                  Key := DecimalSeparator;
                  if Pos(DecimalSeparator,Edit2.Text) <> 0
                  then  begin  Key := Chr(0);
                  ShowMessage('Âæå ââåäåííî êîìó');
                  end;
                end;
           '-':
                if Length(Edit2.Text) <> 0
                      then Key := Chr(0);

        else
               key := Chr(0);
    end;
end;

procedure TForm1.Edit4KeyPress(Sender: TObject; var Key: Char);
begin
  case Key of
  #8,'0'..'9' :  ; // öèôðû è <Back Space>

       '.',',':
                begin
                  if Key <> DecimalSeparator then
                  Key := DecimalSeparator;
                  if Pos(DecimalSeparator,Edit4.Text) <> 0
                  then  begin  Key := Chr(0);
                  ShowMessage('Âæå ââåäåííî êîìó');
                  end;
                end;
           '-':
                if Length(Edit4.Text) <> 0
                      then Key := Chr(0);

        else
               key := Chr(0);
    end;
end;

procedure TForm1.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
  case Key of
  #8,'0'..'9' :  ; // öèôðû è <Back Space>

       '.',',':
                begin
                  if Key <> DecimalSeparator then
                  Key := DecimalSeparator;
                  if Pos(DecimalSeparator,Edit5.Text) <> 0
                  then  begin  Key := Chr(0);
                  ShowMessage('Âæå ââåäåííî êîìó');
                  end;
                end;
           '-':
                if Length(Edit5.Text) <> 0
                      then Key := Chr(0);

        else
               key := Chr(0);
    end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if ((Edit1.text='') or (Edit2.Text='')or (Edit3.Text='') or (Edit4.Text='')
or(Edit5.text='') or (Edit6.text='') or (Edit7.text='') or (Edit8.text='')) then begin
  showMessage('Ââåä³òü äàí³');
 Edit1.SetFocus;
 exit;
 end;
a1:=StrToFloat(Edit1.Text);
a2:=StrToFloat(Edit2.Text);
b1:=StrToFloat(Edit3.Text);
b2:=StrToFloat(Edit4.Text);
c1:=StrToFloat(Edit5.Text);
c2:=StrToFloat(Edit6.Text);
d1:=StrToFloat(Edit7.Text);
d2:=StrToFloat(Edit8.Text);
dg:=StrToFloat(Edit9.Text);
a:=Sqrt(sqr(b1-a1)+sqr(b2-a2));
b:=Sqrt(sqr(c1-b1)+sqr(c2-b2));
c:=Sqrt(sqr(d1-c1)+sqr(d2-c2));
d:=Sqrt(sqr(a1-d1)+sqr(a2-d2));
dg1:=Sqrt(sqr(c1-a1)+sqr(c2-a2));
p1:=(a+b+dg1)/2;
s1:=Sqrt(p1*(p1-a)*(p1-b)*(p1-dg1));
p2:=(c+d+dg1)/2;
s2:=Sqrt(p2*(p2-c)*(p2-d)*(p2-dg1));
s:=s1+s2;
Edit10.Text:='Ïëîùà ÷îòèðèêóòíèêà= '+FloatToStr(s);
end;

end.

2) наприклад, А=(а1;a2) , B=(b1;b2) Довжина сторони АВ=sqrt((b1-a1)^2+(b2-a2)^2).
Площа чотирикутника знаходиться за формулою S=AB*BC

1)  S=sqrt(p*(p-a)*(p-b)*(p-c));  p=(a+b+c)/2; Потім площі двох трикутників додать

Створіть проект, у якому двома способами обчислюється площа опуклого
чотирикутника:
1) за відомими довжинами сторін АВ, ВС, CD, DA та довжиною діагоналі
АС. Використайте процедуру обчислення площі трикутника за форму-
лою Герона. Складіть обробник події OnClick першої кнопки, виконання
якого приведе до виведення розв’язку задачі у вікно повідомлення;
2) за відомими координатами вершин чотирикутника, поданими у порядку
обходу. Використайте функцію обчислення довжини відрізка за коорди-
натами його кінців. Складіть обробник події OnClick другої кнопки, ви-
конання якого приведе до виведення розв’язку задачі в окремий напис.