Delphi wie eine IF verzweigung machen mit radiobuttons?

computerfreaky

Lt. Commander
Registriert
Juni 2008
Beiträge
1.589
hey
also ich habe delphi turbo
also ich möchte mir ein kleiner rechner programmieren, er sollte so aussehen:http://www.bilder-space.de/show.php?file=14.03ZeqYwRKM5pKq7H9.JPG

also ich möchte dann wenn man ,,addition,,ankreuzt, dass wenn man dann auf ,,rechnen,, klickt dass er dann additioniert, und wenn man ,,subtrahieren,, ankreuzt, dass wenn man dann auf ,,rechnen,, klickt dass er dann subtrahiert...

soll ich jetzt nur ein code machen für den ,,rechnen,,-button?
das sollte mit einer if then verzweigung funktionieren?!
procedure TForm1.Button1Click(Sender: TObject);
var
zahl1, zahl2, ergebnis:integer
if (radiobutton1.checked= true) then
begin
zahl1:=strtoint(edit1.Text);
zahl2:=strtoint(edit2.Text);
ergebnis:=zahl1+zahl2;
label4.caption:=inttostr(ergebnis);



end;

aber wieso macht er mir meine ganze if zeile rot?

bitte um hilfe
mfg
 
Code:
[I]procedure TForm1.Button1Click(Sender: TObject);
var
   ergebnis:integer;
begin

if radiobutton1.checked then ergebnis := strtoint(edit1.text)+strtoint(edit2.text);
[/I][I]if radiobutton2.checked then ergebnis := strtoint(edit1.text)-strtoint(edit2.text);
[/I][I]if radiobutton3.checked then ergebnis := strtoint(edit1.text)*strtoint(edit2.text);
[/I][I]if radiobutton4.checked then ergebnis := strtoint(edit1.text) div strtoint(edit2.text);[/I]
[I]
label4.caption := inttostr(ergebnis);

end;[/I]
Der Code sollte funzen... habs zwar ned probiert, aber er sollte. Deine If-Anweisung war rot, weil du vorher das "begin" vergessen hast. Somit galt deine Anweisung als Variablen-Deklaration, das geht natürlich nicht (hat dir der Compiler aber bestimmt auch gesagt).

Übrigens: das letzte ist eine Ganzzahl-Division. Für Divisionen mit Nachkommastelle musst du noch etwas ändern, aber das lernst du sicher noch ;)

/edit: hab nochmal ne kleine Korrektur gemacht
 
Zuletzt bearbeitet: (kleine korrektur)
danke mal für deine antwort aber dein code funzt nicht.
er macht mir die begin zeile rot
ich hatte gar nicht den begin vergessen in meinem code :P

ich habe meine geeilt funktion anders gelernt (aber mit verschieden buttons):
procedure TForm1.Button5Click(Sender: TObject);
var
zahl1, zahl2, ergebnis: real;
begin
zahl1:=strtofloat(Edit1.Text);
zahl2:=strtofloat(Edit2.Text);
ergebnis:=zahl1/zahl2;
Label5.Caption:=floattostr(ergebnis);
end;

damit gibt er komma stellen!

edit :deine korrektur funzt jetzt
danke:)
 
Zuletzt bearbeitet:
hattes oben hingeschrieben, hab noch ne korrektur gemacht. Der Code hat schon gefunzt, es hat nur ein Semikolon gefehlt. Aber wie gesagt: das sagt dir der Compiler doch! Bisschen Eigeninitiative wäre toll ;)
 
Zuletzt bearbeitet:
in der ersten zeile von meinem beitrag ?denn der von andrewpoison funktioniert ja.
kann man das nicht noch anders schreiben? wie zum beispiel in meinem ersten beitrag?

edit:
habe einen neuen code geschrieben, doch der multipliziert nur immer:
procedure TForm1.Button1Click(Sender: TObject);
var
zahl1, zahl2, ergebnis:integer;
begin

if radiobutton1.checked then
zahl1:=StrToInt(Edit1.Text);
zahl2:=StrToInt(Edit2.Text);
ergebnis:=zahl1+zahl2;
Label4.Caption:=IntToStr(ergebnis);


if radiobutton2.checked then
zahl1:=StrToInt(Edit1.Text);
zahl2:=StrToInt(Edit2.Text);
ergebnis:=zahl1-zahl2;
Label4.Caption:=IntToStr(ergebnis);


if radiobutton3.checked then
zahl1:=StrToInt(Edit1.Text);
zahl2:=StrToInt(Edit2.Text);
ergebnis:=zahl1*zahl2;
Label4.Caption:=IntToStr(ergebnis);

end;


edit2:so ist es übersichtlicher:P

edit3:habe jetzt einen neuen code geschrieben und der funzt auch:)
procedure TForm1.Button1Click(Sender: TObject);
var
zahl1, zahl2, ergebnis:real;
begin
zahl1:=strtofloat(edit1.Text);
zahl2:=strtofloat(edit2.text);
if radiobutton1.checked then ergebnis := zahl1+zahl2;
if radiobutton2.checked then ergebnis := zahl1-zahl2;
if radiobutton3.checked then ergebnis := zahl1*zahl2;
if radiobutton4.Checked then ergebnis :=zahl1/zahl2;
label4.caption := floattostr(ergebnis);
end;

er gibt bei der division auch kommastellen an:)

mfg
 
Zuletzt bearbeitet:

Ähnliche Themen

Zurück
Oben