Предложу свой вариант через массив:
procedure TForm1.Button1Click(Sender: TObject);
var
rect: array[0..2] of real;
tmp, p, s: real;
i: integer;
begin
rect[0] := StrToFloat(Edit1.Text);
rect[1] := StrToFloat(Edit2.Text);
rect[2] := StrToFloat(Edit3.Text);
if (rect[0] = rect[1]) and (rect[1] = rect[2]) then
begin
label1.Caption := 'Равносторонний';
Exit;
end;
if (rect[0] = rect[1]) or (rect[1] = rect[2]) or (rect[0] = rect[2]) then
begin
label1.Caption := 'Равнобедренный';
Exit;
end;
//сортируем массив
for i := 0 to 1 do
begin
tmp := rect[i + 1];
if (rect[i] > rect[i + 1]) then
begin
rect[i + 1] := rect[i];
rect[i] := tmp;
end;
end;
if (rect[0] > rect[1]) then
begin
tmp := rect[1];
rect[1] := rect[0];
rect[0] := tmp;
end;
if (sqrt(rect[0] * rect[0] + rect[1] * rect[1]) = rect[2]) then
begin
label1.Caption := 'Прямоугольный';
Exit;
end;
if (rect[0] * rect[0] + rect[1] * rect[1] > rect[2] * rect[2]) then
begin
label1.Caption := 'Тупоугольный';
p := (rect[0] + rect[1] + rect[2]) / 2;
s := sqrt(p * (p - rect[0]) * (p - rect[1]) * (p - rect[2]));
label1.Caption := 'Площадь: ' + FloatToStr(s) + #13;
for i := 0 to 2 do
label1.Caption := label1.Caption + FloatToStr(rect[i]) + #13;
Exit;
end;
end;