Запутался где-то в логических скобках.
Возьми себе за правило не использовать вложенные условные операторы и будет тебе счастье.
Еще одно правило - не пихать никакой код в форму. Форма должна собирать необходимые данные, передавать их на обработку некоему движку, и выводить результат, который он вернет. Весь код на твоей кнопке должен выглядеть примерно так:
Edit4.Text := SomeStaticClass.SomeStaticMethod(
StrToFloat(Edit1.Text),
StrToFloat(Edit2.Text),
StrToFloat(Edit3.Text)
).ToString();
И тогда не будет никаких проблем с end'ами чисто из-за их отсутствия.
Посчитай, сколько '(' и сколько '' в строке ПЕРЕД выделенным как ошибка end.
Их кол-во не совпадает. И ошибка именно в этом: ты написал end, не завершив математическое выражение выше. И это у тебя в нескольких местах.
И, нет - мой тёзка ошибается: в Pascal / Delphi перед end точка с запятой НЕ ставится.