Hallo,
ich habe ein Anliegen. Ich habe einen kleinen Taschenrechner programmiert. Nichts dolles und wollte wissen, ob man auch diese ganzen IF-Abfragen verkürzen kann. Es sind nicht allzu viele, aber ich würde gerne noch etwas im Taschenrechner programmieren.
Delphi-Quellcode:
begin
r_erg := 0;
try
begin
if (Edit1.Text = 'Pflichtfeld') or (Edit2.Text = 'Pflichtfeld') or
(Edit3.Text = 'Pflichtfeld') then
begin
showmessage('Pflichtfelder ausfüllen');
end
else
begin
r_Zahl1 := strtofloat(Edit1.Text);
r_Zahl2 := strtofloat(Edit3.Text);
S_zeichen := Edit2.Text;
if Edit4.Text = '' then
begin
if S_zeichen = '+' then
begin
r_erg := (r_Zahl1 + r_Zahl2);
end
else
begin
if S_zeichen = '-' then
begin
r_erg := (r_Zahl1 - r_Zahl2);
end
else
begin
if S_zeichen = '*' then
begin
r_erg := (r_Zahl1 * r_Zahl2);
end
else
begin
if S_zeichen = '/' then
begin
r_erg := (r_Zahl1 / r_Zahl2);
end
else
showmessage('Falsches Rechenzeichen');
end;
end;
end;
end
else
begin
r_zahl3 := strtofloat(Edit4.Text);
if S_zeichen = '+' then
begin
r_erg := (r_Zahl1 + r_Zahl2 + r_zahl3);
end
else
begin
if S_zeichen = '-' then
begin
r_erg := (r_Zahl1 - r_Zahl2 - r_zahl3);
end
else
begin
if S_zeichen = '*' then
begin
r_erg := (r_Zahl1 * r_Zahl2 * r_zahl3);
end
else
begin
if S_zeichen = '/' then
begin
r_erg := (r_Zahl1 / r_Zahl2 / r_zahl3);
end
else
showmessage('Falsches Rechenzeichen');
end;
end;
end;
end;
end;
end;
except
showmessage('Ungültige zahlen');
end;
Label1.Caption := 'Ergenbis: ' + Floattostr(r_erg);
Oder muss ich das so lassen? Ich habe es mit Case versucht, aber das funktioniert leider nicht.
Also bitte ich um eure Hilfe
Danke im Vorraus
Gruß
Philipp