AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zahlen von Anfang an ausschließen

Ein Thema von Mulgatree · begonnen am 9. Okt 2011 · letzter Beitrag vom 10. Okt 2011
Antwort Antwort
Mulgatree

Registriert seit: 9. Okt 2011
10 Beiträge
 
#1

Zahlen von Anfang an ausschließen

  Alt 9. Okt 2011, 19:38
Delphi-Version: 6
Hi!
Ich bin zum ersten mal hier auf Delp-PRAXis, also erspart mir bitte die kommentare das diese frage in der falschen Sparte ist.

Nun zu meinem Problem:
Ich muss für informatik einen Taschenrechner programmieren, an für sich kein Problem, er soll nur '+' '-' 'div' und 'mod'
können. Allerdings kann man ja nicht durch 0 teilen, deswegen hat uns unser lehrer gesagt, das wir verhindern sollen, dass der DAUS (Dümmster Anzunehmender USer) das programm crasht.
Ich hab also versucht die null auszuschließen, und zwar wiefolgt:
Delphi-Quellcode:
If (spe_2.value=0) or (spe_1.value=0)
  then
    begin
    b_div_kom.enabled:=false;
    b_div_rest.enabled:=false;
    lbl_div_0.Visible:=true;

If spe_2.value > 0 then begin
b_div_kom.enabled:=true;
b_div_rest.enabled:=true;
lbl_div_0.Visible:=false;
end;
end;
Also werden die Button bei dem erfüllen dieser Vorraussetzung ungebrauchbar. Allerdings krieg ich dann immer die Fehlermeldung: Meldun "" ist kein gültiger integerwert wenn ich die null aus spinbox löschen will.
und außerdem werden die Button erst disabled, wenn ich noch einmal die null eingebe... hoffe es ist nicht zu kompliziert formuliert.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: Zahlen von Anfang an ausschließen

  Alt 9. Okt 2011, 19:58
Delphi-Referenz durchsuchenTryStrToInt, bzw. Delphi-Referenz durchsuchenTryStrToFloat und schon kannst du die Strings problemfrei konvertieren.

Ansonsten Exceptionbehandlung mit Try-Except. (wobei Ersteres zu bevorzugen ist)

Theoretisch würde auch b_div_kom.enabled := spe_2.value <> 0; ausreichen, aber wie du gemerkt hast, ist die integrierte Typkonvertierung nicht unbedingt passend, für deine Bedürfnisse ... also selber umwandeln.


Zitat:
Ich bin zum ersten mal hier auf Delp-PRAXis, also erspart mir bitte die kommentare das diese frage in der falschen Sparte ist.
Hast du dir denn Gedanken gemacht, wo es reinpassen könnte?
Wenn ja, dann hätte man sich solche Sätze sparen können, vorallem da man sich ja keine großen Sorgen machen muß.
(klingt halt nicht unbedingt ganz so frendlich )

Nja, paßt schon.

Aber dennoch Willkommen an Board.
$2B or not $2B

Geändert von himitsu ( 9. Okt 2011 um 20:33 Uhr)
  Mit Zitat antworten Zitat
Mulgatree

Registriert seit: 9. Okt 2011
10 Beiträge
 
#3

AW: Zahlen von Anfang an ausschließen

  Alt 9. Okt 2011, 20:16
Okay, danke!
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Zahlen von Anfang an ausschließen

  Alt 10. Okt 2011, 04:06
DAUS (Dümmster Anzunehmender USer)
Und ich dachte immer das heisst DAU ... man lernt nie aus

Oder ist diese Information von einem DAL?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#5

AW: Zahlen von Anfang an ausschließen

  Alt 10. Okt 2011, 04:38
Wenn schon, dann von einem DALEK
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.737 Beiträge
 
Delphi 6 Enterprise
 
#6

AW: Zahlen von Anfang an ausschließen

  Alt 10. Okt 2011, 09:10
Ei der Daus
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

AW: Zahlen von Anfang an ausschließen

  Alt 10. Okt 2011, 12:20
Allerdings krieg ich dann immer die Fehlermeldung: Meldun "" ist kein gültiger integerwert wenn ich die null aus spinbox löschen will.
Ich nehme an, du bekommst diese Meldung wenn kein Wert in dem SpinEdit steht. Kann es sein, dass du irgendwo eine OnChange Ereignisbehandlungsroutine für das SpinEdit hast, wo auf dessen Wert zugegriffen wird?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#8

AW: Zahlen von Anfang an ausschließen

  Alt 10. Okt 2011, 12:59
Jupp, vermutlich ist der Code dort und sein Zugriff geht ja aktuell übet spe_2.value , welches intern ein StrToInt benutzt.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Zahlen von Anfang an ausschließen

  Alt 10. Okt 2011, 13:01
Fehlermeldung: Meldun "" ist kein gültiger integerwert wenn ich die null aus spinbox löschen will.
Das ist leider ein Fehler direkt im SpinEdit.
Entweder musst Du Dich damit abfinden oder eine andere (fehlerbreinigte) Komponente verwenden. Das ist aber nicht ganz so einfach (man muss sich etwas mit der Komponentenentwicklung befassen) ...

[Edit]In der Ereignisbehandlung prüft er ja scheinbar explizit auf 0.[/Edit]
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz