Hallo
DP´ler
Eine kurze Beschreibung was ich mir Überlegt habe. Ich möchte einen Taschenrechner so programmieren, dass der User durch klicken auf Buttons willkürliche Rechnungen durchführen kann.
Zum Beispiel:
2+22+4-258*635/741 (Die Eingabe erfolgt über Buttons, sowohl die Zahlen als auch Operatoren)
Nun besteht ja das Problem Punkt vor Strich.
Mein Ansatz:
Delphi-Quellcode:
var
Form1: TForm1;
speicher :string;
plus,minus,mal,geteilt :integer;
...
...
...
{Button für die Rechenarten}
{-----------------------------------------------------------}
procedure TForm1.Button_plusClick(Sender: TObject);
begin
speicher:=speicher+edit1.text+'+';
edit1.Text:='';
end;
procedure TForm1.Button_minusClick(Sender: TObject);
begin
speicher:=speicher+edit1.text+'-';
edit1.Text:='';
end;
procedure TForm1.Button_malClick(Sender: TObject);
begin
speicher:=speicher+edit1.text+'*';
edit1.Text:='';
end;
procedure TForm1.Button_geteiltClick(Sender: TObject);
begin
speicher:=speicher+edit1.text+'/';
edit1.Text:='';
end;
{-----------------------------------------------------------}
...
...
...
procedure TForm1.Button_gleichClick(Sender: TObject);
begin
speicher:=speicher+edit1.text;
//Übergabe der Position des Zeichens im String
plus:=pos('+',speicher);
minus:=pos('-',speicher);
mal:=pos('*',speicher);
geteilt:=pos('/',speicher);
Nun zu meinen Problemen:
Ich habe leider erst sehr wenige Grundkenntnisse und ich komme hier nicht weiter. Eigentlich habe ich vor, den String bis zu den jeweiligen Operatoren zu zerlegen und ihn als Integer einer Variable zu übergeben. Pos liefert mir aber nur das erste übereinstimmende Zeichen wieder. Wie löse ich also das Problem, wenn in einem String mehrere Plus-Zeichen auftauchen.