Die wird sehr wohl beachtet, nur hast du danach das erg, welches du in der Schleife berechnet hast einfach wieder überschrieben. Desweiteren "überschreibst" du deine Ausgabe Label1.Caption.
So müsste es funktionieren:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
gut := strtoint(edit1.text);
zins := strtoint(edit2.Text);
dauer := strtoint(edit3.text);
mind := strtoint(edit4.text);
zaehler := 1;
jahre := dauer / 12;
monate := dauer mod 12;
if dauer>=mind then
begin
while zaehler<=jahre do
begin
erg := gut*(1+(zins/100));
zaehler:=zaehler+1;
end;
label4.Caption := 'Sie erhalten insgesamt ' + floattostr(erg) + ' €';
end
else begin
label4.caption := 'Sie erhalten leider keine Zinsen.';
end;
end;