![]() |
Mal wieder ein Taschenrechner
Ich weiß, dass ihr es langsam satt habt, aber ich habe keine Ahnung von Delphi. Dennoch möchte ich einen "relativ guten" Taschenrechner programmieren. Ich hab mir auch einiges vorgenommen:
- Ein Editfeld, in dem die Zahlen 0-9 und Komma erscheinen, wenn ich die Buttons drücke - +, -, *, / - Das Ergebnis meiner Rechnung soll erst erscheinen, wenn ich den = Button drücke (Wenn das überhaupt geht) Frage: Wie bekomme ich das hin? |
Re: Mal wieder ein Taschenrechner
Wenn du ganze Terme ausrechnen willst, also mit Klammern und Punkt vor Strich etc., dann kommst du um einen Mathe-Parser nicht drum rum. Dieser muss dann die eingegebene Zeile analysieren und dann nach den mathematischen Regeln berechnen. Einen Mathe--Parser zu schreiben ist eine ganz schön haarige Aufgabe und für einen Anfänger beinahe unlösbar. In diesem Fall könntest du auf eine fertige Komponente/Unit etc. zurückgreifen.
Patti |
Re: Mal wieder ein Taschenrechner
Ein Maskedit ist erstmal Pflicht ;-)
|
Re: Mal wieder ein Taschenrechner
Also auf diesen Parser kann ich verzichten ^^.
Was ist denn ein Mask-Edit? Jetz kommen wir meiner Frage schon etwas näher... |
Re: Mal wieder ein Taschenrechner
tut mir Leid, aber hier kann ich nur noch auf die Suchfunktion verweisen
> ![]() alles was du möchtest wurde schon mehrmals genannt und durchgekaut. unter Anderem vor Kurzem auch Dieses ![]() [add] ![]() |
Re: Mal wieder ein Taschenrechner
Zitat:
Code:
sondern halt nur einzelne Rechenschritte.
4*3+2*7
Für den Anfang ist das sicherlich trotzdem eine sinnvolle Übung, da man einiges über Delphi und die Komponenten lernen kann. Aber wie himitsu schon geschrieben hat: in der DP gibt es schon einiges dazu. Wenn du natürlich konkrete Fragen hast, kannst du diese hier selbstverständlich stellen. Patti |
Re: Mal wieder ein Taschenrechner
Achso, dann bräuchte ich nur eine Anleitung oder einen Link, wo ich herausfinden kann, wie dieses Parser zu programmieren ist =)
|
Re: Mal wieder ein Taschenrechner
So etwas programmiert man aber nicht einfach so. Du könntest Dir aber z.B.
![]() |
Re: Mal wieder ein Taschenrechner
In dem oben schon verlinkten Thread ging es um einen Parser und da wurde auch beschieben, wie man vorgehn könnten.
Außerdem wurde dort wiederum der "kleine" Thread, samt Parser, von mir verlinkt, welcher als OpenSource verfügbar ist, also samt QuellCode zum Nachgucken. |
Re: Mal wieder ein Taschenrechner
Gut, Leute, eine Frage aber noch. Ich bitte euch, sie einfach mit dem von mir gefragten Code zu beantworten.
Habe durch rumprobieren herausgefunden, wie ich von einem Button durch einen Klick drauf die Zahl, für die er steht, ins Editfeld zu bekommen: var test: Integer; begin test := StrToInt (Bt1.Caption); EdZahl1.Text := IntToStr (test); end; Das Problem ist: wenn ich beispielsweise die Zahl "12" angezeigt bekommen will, geht das nicht. Er sagt dem Editfeld entweder nur 1 oder nur 2, aber nicht sowohl 1 als auch 2. BITTE!!! einfach nur beantworten! |
Re: Mal wieder ein Taschenrechner
Delphi-Quellcode:
So recht? Darauf kann man aber auch alleine kommen, und wozu das gecaste von string zu integer und wieder zurück, und wozu die variable?
EdZahl1.text:=EdZahl1.text+Bt1.caption;
|
Re: Mal wieder ein Taschenrechner
Zitat:
Wenn ich von Anfanfg an so programmiert hätte wie heute und ich hätte mich in der Zeit genauso weiterentwickelt, wie würde dann mein Code heute aussehen ? |
Re: Mal wieder ein Taschenrechner
Warum so "kompliziert"? --> Ich habe keine bzw. wenig oder beschränkte Ahnung von Delphi, also habe ich rumprobiert. Und: Warum nicht? solange es klappt... (danke kalmi)
Deinen Tipp verstehe ich nicht... Wo soll ich das denn reinsetzen? Anstatt meiner Lösung oder davor, dahinter, daneben,...? |
Re: Mal wieder ein Taschenrechner
Anstatt.
|
Re: Mal wieder ein Taschenrechner
Zitat:
Lediglich die Ausführung bedarf noch einiger Anpassungen :) Also ein Zitat:
Delphi-Quellcode:
aber auch ein
test := StrToInt ('0' + Bt1.Caption);
Delphi-Quellcode:
hat so seinen Charm
test := StrToIntDef (Bt1.Caption, '0');
Gruss Michael |
Re: Mal wieder ein Taschenrechner
Woa, schon wieder Frage >.<
Alles wie gehabt, nur diesmal soll der mir nicht den Namen des Buttons ins Editfeld schreiben, sondern eine Zahl. Bei mir heißt ein Button Pi, und beim Klick darauf soll der mir ins Editfeld 3,14159 schreiben. |
Re: Mal wieder ein Taschenrechner
Guten Abend,
die Grundlagen bist Du schon durch, oder?
Delphi-Quellcode:
So weit ich das weiß sollte pi auch in der Unit Math System definiert sein.
Edit1.Text := '3.14...';
In dem Fall dann:
Delphi-Quellcode:
Grüße
Edit1.Text := FloatToStr(pi);
Klaus |
Re: Mal wieder ein Taschenrechner
Aua, das tut ja schon weh, so simpel war das >.<
Danke =) |
Re: Mal wieder ein Taschenrechner
[nicht wichtig]
mathe parser sind nur'n paar Stichworte für die Suchfunktion |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz