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