Lazarus bzw. Programmiersprache "Pascal" problem beim erstellen eines Taschenrechners?
Hallo.
Ich bin gerade dabei einen Taschenrechner auf Lazarus mit der Programmiersprache Pascal zu programmieren.
Dennoch hab ich bei einer Sache ein Problem (bin noch Anfänger in diesem Bereich).
Und zwar schaffe ich es nicht, dass es ausgerechnet wird.
Also ich hab es erstmal mit einem label probiert.
Da schaff ich (komisch gesagt) nicht die opperatoren (+,-,*,/) von den Zahlen zu "Filtern".
Also so dass erkannt wird was davon die zahl ist und was der opperator damit das automatisch ausgerechnet wird.
2.Variante ist, ich hab 3 edits. Ein Edit für die erste zahl und eins für die zweite und eins für den opperator aber da hab ich das problem mit der virtuellen tastatur (welche dabei sein muss), da ich nicht weiß wie man da einstellt (auch nicht vom nachdenken her) dass man in das 2. edit feld schreibt wenn man die 2.zahl schreiben will. z.b. dass sobald man auf die edit fenster klickt, dass dann jede zahl die eingegeben wird nur da angezeigt wird.
Hoffe es ist einigermaßen verständlich.
Kurze zusammenfassung:
1. wie bringt man einen Taschenrechner mit Lazarus mit nur einem label wo alles reinkommt zum rechnen
2.Wie macht man es so, dass bei einer virtuellen tastatur, sobald man auf ein edit fenster klickt , alles was man klickt in dem ausgewählten edit fenster landet?
danke im Vorraus
1 Antwort
1)
Alle Eingaben, die der Nutzer in einer Textbox macht, werden in einen String gespeichert. Um zwischen Zahl und Operator zu unterscheiden, müsstest du diesen String erst parsen. Das ist aber viel zu umständlich. Verwende stattdessen Buttons.
2)
Das verstehe ich wohl auch nicht richtig. Um zwischen den Eingabefeldern zu springen, muss der Nutzer entweder das jeweilige Feld mit der Maus oder via Tabulatortaste fokusieren. Für die Eingabefelder kannst du für letztere Möglichkeit den Tabindex setzen.
Erneut würde ich dir hier empfehlen, die Operatoren in Form von Buttons anzugeben. So hast du mehr Kontrolle über die möglichen Eingaben des Nutzers.
In ein Textfeld kann der Nutzer alles mögliche hineinschreiben und du musst daraufhin überprüfen, ob die Eingabe überhaupt eine Rechenaufgabe ist oder nicht. Das ist viel zu kompliziert.
Bei vorgegebenen Buttons dröselst du den Rechenterm auf, für die Textfelder brauchst du nur noch ermitteln, ob da eine Zahl eingegeben wurde oder nicht. Die Rechemöglichkeiten sind somit begrenzt, du weißt jederzeit, dass nur eine Subtraktion, Addition, ... auftreten kann.
Inwiefern hätte ich mehr kontrolle wenn ich die Opperatoren in form von Buttons angebe? Tut mir leid bin noch nicht so vertraut mit der Programmiersprache und dem program^^