Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi taschenrechner (https://www.delphipraxis.net/72232-taschenrechner.html)

sigma 27. Jun 2006 13:29


taschenrechner
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo ich bin neu hier und ich habe ein Problem!

Ich soll einen Taschenrechner programmieren und er ist gar nicht so schlecht dafür das ich erst angefangen habe mit delphi zu programmieren,
nur jetzt hab ich ein Problem ich soll eine Prüfung auf Zahlen und Buchstaben machen aber ich hab keine ahnung wie ich das machen soll kann mit vielleicht jemand helfen

als mal im vorraus danke

EDatabaseError 27. Jun 2006 13:31

Re: taschenrechner
 
Schau mal in der Forensuche nach

Herzlich Willkommen in der DP :party:

sigma 27. Jun 2006 13:34

Re: taschenrechner
 
hab ich schon aber ich werde daraus nicht schlau
hab schon einpaar sachen gefunden aber wenn ich die eingefügt habe und sie abgeändert habe damit sie bei mir laufen sollten hat es doch nie funktioniert

netscanner 27. Jun 2006 13:35

Re: taschenrechner
 
für was soll dir prüfung denn sein?
um zu überprüfen, ob das zeichen überhaupt in eine integer, real o.ä. variable gelesen werden kann?
Dann würde ich try & except benutzen

Delphi-Quellcode:
try
integervariable := strtoint(edit1.text);
except
showmessage('Bitte nur zahlen eingeben');
end;

sigma 27. Jun 2006 13:40

Re: taschenrechner
 
es soll keine Buchstabeneingabe erfolgen
es sollen nur zahlen erlaubt sein

soblad ich Buchstaben eingebe und dann auf eine zahl klicke bekomme ich eine fehlermeldung und die soll ich abfangen
aber ich hab keine idee wie ich das machen soll

netscanner 27. Jun 2006 13:44

Re: taschenrechner
 
s.o. das ist der lösungsansatz dazu....

wie ich sehe list du in ne real variable...
Der Fehler kommt bei der codezeile
Delphi-Quellcode:
x := strtofloat(edit1.text);
Das einfach durch:
Delphi-Quellcode:
try
x := strtofloat(edit1.text);
except
showmessage('Bitte nur zahlen eingeben');
end;
ersetzten...

Ein Buchstabe ist keine Zeichen aus dem Real Zahl bereich...daher bringt er dir ne fehlermeldung.
Der Befehl oben überprüft erst, ob es geht...wenns net geht bringt er eine meldung und führt den x := strtofloat(edit1.text); gar nicht erst aus....

sigma 27. Jun 2006 13:52

Re: taschenrechner
 
ich weis es ist ne sau dumme frage aber wo soll ich das ersetzen hab mein Programm mal durchsucht aber diese zeile nicht gefunden
x := strtofloat(edit1.text);

ich bin wohl echt zu dumm um das hin zu bekommen

netscanner 27. Jun 2006 13:58

Re: taschenrechner
 
aua :)

Die zeile heißt ja auch: x := StrToFloat(Zahl);

steht in jedem deiner zahlen buttons ganz unten....

also nochmal der code:
Delphi-Quellcode:
try
x := strtofloat(zahl);
except
showmessage('Bitte nur zahlen eingeben');
end;
p.s.: es kann sein, dass delphi dann immer noch rummotzt...(beim ausführen)
aber spätestens wenn du die exe ohne delphi öffnest gibt es keine fehler mehr

sigma 27. Jun 2006 14:03

Re: taschenrechner
 
hab doch gesagt bin zu doof dafür hab das jetzt eingefügt und dann kommt die meldung

Im Projekt Taschenrechner.exe ist ein Exception der Klasse EConvertError aufgetrette.
Meldung "T" ist kein gültiger Gleitkommawer.Prozeß wurde angehalten


was kann ich machen damit diese Fehlermeldung nicht mehr kommt

EDatabaseError 27. Jun 2006 14:04

Re: taschenrechner
 
die exe ohne delphi starten wenn das try except drin ist.

netscanner 27. Jun 2006 14:06

Re: taschenrechner
 
...genau - hab ich aber auch schon im letzten beitrag erwähnt :wink:

Hawkeye219 27. Jun 2006 14:07

Re: taschenrechner
 
Zitat:

Zitat von netscanner
p.s.: es kann sein, dass delphi dann immer noch rummotzt...(beim ausführen)
aber spätestens wenn du die exe ohne delphi öffnest gibt es keine fehler mehr

Wäre dann nicht die Funktion TryStrToFloat die bessere Wahl?

Gruß Hawkeye

TheAn00bis 27. Jun 2006 14:08

Re: taschenrechner
 
Es reicht die Anwendung in Delphi ohne Debugger zu starten. ;)

Schöner finde ich aber ins OnKeyPress des Eingabefeldes folgenden Code zu packen:

Delphi-Quellcode:
if not (key in ['1'..'9']) then key := #0;

Dann können nur Zahlen eigegeben werden.

sigma 27. Jun 2006 14:11

Re: taschenrechner
 
danke leute ohne euch würde es nie funktionieren endlich glappt es danke


hab zwar noch ein problem aber mal schauen vielleicht finde ich das selber raus

Hawkeye219 27. Jun 2006 14:12

Re: taschenrechner
 
Zitat:

Zitat von TheAn00bis
Dann können nur Zahlen eigegeben werden.

Stimmt: kein Vorzeichen, kein Dezimaltrenner, kein Backspace...

Gruß Hawkeye

netscanner 27. Jun 2006 14:13

Re: taschenrechner
 
dann halt die if abfrage anders...
Delphi-Quellcode:
if (key in ['A'..'Z' and 'a'..'z']) then key := #0; //ungetestet

TheAn00bis 27. Jun 2006 14:14

Re: taschenrechner
 
Zitat:

Zitat von Hawkeye219
Zitat:

Zitat von TheAn00bis
Dann können nur Zahlen eigegeben werden.

Stimmt: kein Vorzeichen, kein Dezimaltrenner, kein Backspace...

Gruß Hawkeye

Hast du im Windowstaschenrechner schonmal Operatoren gesehen? Ich vermute, dass sein Taschenrechner ähnlcih aufgebaut ist. Und er sagte selber es sollen nur Zahlen einzugeben sein.

sigma 27. Jun 2006 14:15

Re: taschenrechner
 
also noch mal danke für eure hilfe jetzt geht es endlich :-D :-D :-D

netscanner 27. Jun 2006 14:16

Re: taschenrechner
 
Wie hast du es jetzt gemacht ??
Über try & except oder über onkeypress ?

sigma 27. Jun 2006 14:20

Re: taschenrechner
 
if (key in ['A'..'Z' and 'a'..'z']) then key := #0; dies funktioniert leider nicht

aber if not (key in ['1'..'9']) then key := #0;
funktioniert hoffe das reicht meinen ausbildern

das mit try & except hab ich nicht hin bekommen dafür war ich dann doch zu dumm




und nochmals danke für eure schnelle hilfe

EDatabaseError 27. Jun 2006 14:22

Re: taschenrechner
 
und was ist mit der 0 :wink:

sigma 27. Jun 2006 14:23

Re: taschenrechner
 
wie was ist mir der 0 ich weis nicht was du meinst

TheAn00bis 27. Jun 2006 14:23

Re: taschenrechner
 
Zitat:

Zitat von sigma
if (key in ['A'..'Z' and 'a'..'z']) then key := #0; dies funktioniert leider nicht

aber if not (key in ['1'..'9']) then key := #0;
funktioniert hoffe das reicht meinen ausbildern

das mit try & except hab ich nicht hin bekommen dafür war ich dann doch zu dumm




und nochmals danke für eure schnelle hilfe

Ersetz mal das "and" durch ein ",".

sigma 27. Jun 2006 14:29

Re: taschenrechner
 
das hat funktioniert wo ich das and durch ein komma ersetzt habe

nur wenn ich jetzt zahlen eingebe und dann + oder - drücke und dann wieder zahlen eingebe bekomme ich immer 0 raus kann ich das irgendwie ändern

TheAn00bis 27. Jun 2006 14:34

Re: taschenrechner
 
Zitat:

Zitat von sigma
das hat funktioniert wo ich das and durch ein komma ersetzt habe

nur wenn ich jetzt zahlen eingebe und dann + oder - drücke und dann wieder zahlen eingebe bekomme ich immer 0 raus kann ich das irgendwie ändern

Das kann mit dem Code

Delphi-Quellcode:
if (key in ['A'..'Z','a'..'z']) then key := #0;
nichts zu tun haben; der Code verhindert lediglich, dass Buchstaben eigegeben werden.

Wir haben keine Ahnung, wie du deinen Taschenrechner ansonsten umgesetzt hast, es ist also schwer dir zu helfen. ;)

EDatabaseError 27. Jun 2006 14:37

Re: taschenrechner
 
schau mal oben anhang ;-)

sigma 27. Jun 2006 14:38

Re: taschenrechner
 
achso gut ich hab gedacht das hätte dann vielleicht was mit dem code zu tun dann schau ich mal hoffe dass ich das hin bekomme


also leute dann bedanke ich mich wieder bei euch jetzt geht es wenigstens das ich kein Buchstaben mehr eingeben kann

danke für eure schnelle hilfe

TheAn00bis 27. Jun 2006 14:39

Re: taschenrechner
 
Zitat:

Zitat von EDatabaseError
schau mal oben anhang ;-)

:oops: Übersehen...

sigma 27. Jun 2006 14:44

Re: taschenrechner
 
was soll ich übersehen haben

EDatabaseError 27. Jun 2006 14:46

Re: taschenrechner
 
nichts er hat deine sourcen übersehen ;-)

sigma 27. Jun 2006 14:47

Re: taschenrechner
 
ah ok
also noch mal danke so ich muss dann jetzt auch gehen

sigma 30. Jun 2006 13:11

Re: taschenrechner
 
hallo ich bins wieder hab ein neues Problem

ich soll die Position von meinem Taschenrechner programmieren das der immer in der mitte erscheint

ich weis wie ich das einstelle unter delphi aber ich soll es Programmieren

weis einer von euch wie das geht

pacman1986 30. Jun 2006 13:34

Re: taschenrechner
 
eigentlich neue frage neuer thread aber hier erstma die antwort :D

Delphi-Quellcode:
Form1.Position := poScreenCenter;


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:45 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