ich habe gerade angefangen, mit Lazarus programmieren zu lernen, und ich komme bei meinem Übungsprogramm nicht weiter. So bin ich auf dieses Forum gestoßen...
Mein Programm ist ein einfaches Formular mit einem Label oben, darunter ein Edit und darunter ein Button. Ich will erreichen, dass der Benutzer nach jedem Klick auf den Button eine andere Anweisung auf dem Label sieht. So sollen dann bei jedem Schritt die benötigten Werte abgefragt und den Variablen zugewiesen werden. Am Ende wird alles ausgerechnet und das Ergebnis im Label angezeigt.
Jetzt meine Fragen:
1. Wie kann ich ganz zum Schluss nach der Berechnung mit dem Button wieder zum ersten Schritt zurückspringen, so dass alle Werte wieder abgefragt werden und ich eine neue Berechnung durchführen kann? Ich habe es mal versucht mit "If Nr = 7 then Nr := 1", aber dann stürzte das Programm ab.
2. Kann ich das nicht eleganter aufbauen als mit dem Hochzählen der Variablen "Nr"? Ich weiß leider nicht, wie ich sonst erreichen kann, dass Schritt für Schritt über das Label verschiedene Werte abgefragt werden.
Ich wäre Euch sehr dankbar für alle Tipps!
Viele Grüße,
Stefan
Code: Alles auswählen
procedure TForm1.FormCreate(Sender: TObject);
begin
Nr:= 0;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Inc (Nr);
If Nr = 1 then
begin
Edit1.Text := '';
Label1.caption := 'Was ist der Kaufpreis des Autos?';
Edit1.setfocus;
Button1.Caption := 'Weiter';
end;
If Nr = 2 then
begin
Preis := StrToFloat(Edit1.text);
Label1.Caption := 'Wieviel Kraftstoff braucht es auf 100km?';
Edit1.Text := '';
Edit1.setfocus;
end;
If Nr = 3 then
begin
Verbrauch := StrToFloat(Edit1.text);
Label1.Caption := 'Wieviele km fährst du im Jahr?';
Edit1.Text := '';
Edit1.setfocus;
end;
If Nr = 4 then
begin
JahresKm := StrToFloat(Edit1.text);
Label1.Caption := 'Wie hoch ist der Kraftstoffpreis?';
Edit1.Text := '';
Edit1.setfocus;
end;
If Nr = 5 then
begin
Stoff := StrToFloat(Edit1.text);
Label1.Caption := 'Wieviele Jahre willst du das Auto fahren?';
Edit1.Text := '';
Edit1.setfocus;
end;
If Nr = 6 then
begin
Dauer := StrToFloat(Edit1.text);
Edit1.Text := '';
Kosten := (((Stoff*Verbrauch)/100)*JahresKm)*Dauer +Preis;
Label1.Caption := 'Die Kosten über '
+ FloatToStr(Dauer)
+ ' Jahr(e) betragen '
+ FloatToStr(Kosten)
+ ' EUR!';
Button1.caption := 'Neu';
end;
end;