Zitat von
rhesusaffe89:
Hmm naja so richtig weiter bin ich nicht gekommen. Hat einer vielleicht "die" zündende Idee, das Programm zu laufen zu bekommen?
Ein ganz heißer Tipp wäre eventuell, das Ergebnis auch auszugeben, statt es vorher einzulesen
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
zulgesch, gefgesch, bußgeld: Double;
inort: String;
punkte, fahrverbot: Integer;
begin
case radiogroup1.itemindex of
0 : inort := 'ja';
1 : inort := 'nein';
end;
zulgesch:= StrToFloat(Edit1.Text);
gefgesch:= StrToFloat(Edit2.Text);
//bußgeld:= StrToFloat(Edit3.Text); <-- Hier liest du ein, was der User gerne für ein Bußgeld hätte ;)
if (gefgesch >= 50) and (gefgesch <=60) then
bußgeld:= 15;
if (gefgesch >= 60) and (gefgesch <=65) then
bußgeld:= 25;
end;
Edit3.Text := FloatToStr(bußgeld); //<-- Besser wäre es, das Ergebnis am Ende der Methode auszugeben ;)
end;
end.
Im Übrigen bin ich mir nicht wirklich sicher, was Delphi zu dem 'ß' sagt. AFAIK sollte man darauf (und auch auf Umlaute) bei der Programmierung verzichten
Achso, und warum ein String für 'inort'?
Ein Boolean wäre da doch
IMHO deutlich sinnvoller:
Delphi-Quellcode:
inort : Boolean;
//...
inort := (RadioGroup1.ItemIndex = 1);
Und noch ein Edit: Der Hinweis von Frankfurtoder ist sowieso sehr sinnvoll. Warum denn so komplizierte If-Konstrukte, wenn es doch im Endeffekt immer nur um die Geschwindigkeitsübertretung geht?
Das ließe sich doch mit einem Case mit Bereichsüberprüfung deutlich übersichtlicher gestalten. Voraussetzung wäre allerdings, dass du die Geschwindkigeiten als Integer definierst. Ich sehe aber im Moment sowieso keinen Sinn darin, dafür einen Double zu benutzen...
Delphi-Quellcode:
Case gefgesch-zulgesch of
0..10: bußgeld := 15;
11..15: bußgeld := 25;
else bußgeld := 42;
end;
Btw stimmen die Bußgelder doch sowieso nicht... Deinem Code nach muss ich 15€ Strafe zahlen, wenn ich mit 50 durch die Stadt fahre?