Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Brauch den code für das geteilt beim Taschenrechner (https://www.delphipraxis.net/26054-brauch-den-code-fuer-das-geteilt-beim-taschenrechner.html)

Saimen 17. Jul 2004 10:16


Brauch den code für das geteilt beim Taschenrechner
 
Hi!

ich brüchte den code damit mein taschenrechner teilen kann.

SpinEdit3.Value:=SpinEdit1.Value / SpinEdit2.Value;

geht leider nicht. :cry:

alcaeus 17. Jul 2004 10:18

Re: Brauch den code für das geteilt beim Taschenrechner
 
Zitat:

Zitat von Saimen
geht leider nicht.

Erklär mal bitte WAS denn nicht geht. Sagt schon der Compiler nein, oder tritt ein Laufzeitfehler auf oder wird einfach nur das Ergebnis nicht angezeigt?

In diesem Fall eine Ausnahme: SpinEdit.Value ist eine Integer-Eigenschaft, verwende div anstatt / und es wird funktionieren.

Greetz
alcaeus

Sharky 17. Jul 2004 10:18

Re: Brauch den code für das geteilt beim Taschenrechner
 
Hai Saimen,

warumm geht es denn nicht? Ich denke mal Du bekommst eine Fehlermeldung.

Saimen 17. Jul 2004 10:21

Re: Brauch den code für das geteilt beim Taschenrechner
 
@ alcaleus nein wenn ich div statt/ schreibe kann ich das programm nichtmehr ausführen :cry:

Nicolai1234 17. Jul 2004 10:25

Re: Brauch den code für das geteilt beim Taschenrechner
 
Zitat:

Zitat von Saimen
SpinEdit3.Value:=SpinEdit1.Value / SpinEdit2.Value;

Muss man nicht das schreiben:
Delphi-Quellcode:
SpinEdit3.Value:=SpinEdit1.Value div SpinEdit2.Value;

Saimen 17. Jul 2004 10:27

Re: Brauch den code für das geteilt beim Taschenrechner
 
Ich bin so DUMM
Jetzt gehts

allerdings müsste ich jetzt noch wissen was ich machen soll damit man nicht durch 1 teilen kann und damit kein fehler kommt sondern einfach eine form geöffnet wird wenn ich durch 0 teile... :lol:

Mirilin 17. Jul 2004 10:30

Re: Brauch den code für das geteilt beim Taschenrechner
 
:hi:
ev. MinValue setzen.

mfg Tobias

Saimen 17. Jul 2004 10:31

Re: Brauch den code für das geteilt beim Taschenrechner
 
Hab ich schon :roll:

tHeRiAn 17. Jul 2004 10:32

Re: Brauch den code für das geteilt beim Taschenrechner
 
guten morgen erst mal,

du fragst einfach ab ob irgendeiner deiner Ausganswerte nicht 0 ist...du hast geschrieben durch 1..,meintest bestimmt durch 0

Delphi-Quellcode:
if (spinedit.value <> 0) then begin
mach irgendwas
end;
mfg therian

ach ja..heut scheint die sonne...raus mit euch

Saimen 17. Jul 2004 10:34

Re: Brauch den code für das geteilt beim Taschenrechner
 
man darf auch nicht durch 1 teilen :wink:

und auserdem wieso mach irgendwas?

alcaeus 17. Jul 2004 10:35

Re: Brauch den code für das geteilt beim Taschenrechner
 
Alternativ kannst dus auch mit einem try-except-Block lösen:
Delphi-Quellcode:
try
  SpinEdit3.Value:=SpinEdit1.Value div SpinEdit2.Value;
except
  MessageDlg('Ungültiger Wert!', mtError, [mbOk], 0);
end;
Greetz
alcaeus

PS: Beim testen die Delphi-Exceptions in den Debugger-Optionen ausschalten, andernfalls kommt die Exceptionmeldung immer noch.

[add]
Zitat:

Zitat von Saimen
man darf auch nicht durch 1 teilen :wink:

Und wieso nicht?

Zitat:

Zitat von Saimen
und auserdem wieso mach irgendwas?

Weil er zu faul war nachzusehen, was du machen willst und der Code als Beispiel gedacht war :roll:
[/add]

[add2]
Zitat:

Zitat von Saimen
Ich hab jetzt ehrlich gesagt kein wort verstanden

Wovon hast du kein Wort verstanden?
[/add2]

Saimen 17. Jul 2004 10:36

Re: Brauch den code für das geteilt beim Taschenrechner
 
Ich hab jetzt ehrlich gesagt kein wort verstanden :pale: :oops:

Sharky 17. Jul 2004 10:39

Re: Brauch den code für das geteilt beim Taschenrechner
 
Zitat:

Zitat von Saimen
man darf auch nicht durch 1 teilen....

Seit wann darf man nicht durch 1 teilen?

Delphi-Quellcode:
begin
  if (SpinEdit2.Value=0) then
  begin
    ShowMessage ('Division durch 0');
  end
  else
  begin
    SpinEdit3.Value:=SpinEdit1.Value div SpinEdit2.Value
  end;
end;

Saimen 17. Jul 2004 10:40

Re: Brauch den code für das geteilt beim Taschenrechner
 
was soll der un terste code?

tHeRiAn 17. Jul 2004 10:45

Re: Brauch den code für das geteilt beim Taschenrechner
 
Hi Seimen,

sorry war wohl zu schnell,

ok, du sagtest du willst die Eingabe durch 1 und 0 verhindern. Das kannst du durch eine Abfrage lösen wie:

Delphi-Quellcode:
if (SpinEdit2.Value <> 1) and (SpinEdit2.Value <> 0) then begin
 SpinEdit3.Value := SpinEdit1.Value div SpinEdit2.Value
end;
Die Neu Form kannst du so erzeugen.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  meineForm: TForm1;
begin
  meineform := TForm1.Create(nil);
  meineForm.Show;

end;

Saimen 17. Jul 2004 10:48

Re: Brauch den code für das geteilt beim Taschenrechner
 
Aber dann kommt drotzdem ein fehler :roll:

alcaeus 17. Jul 2004 10:49

Re: Brauch den code für das geteilt beim Taschenrechner
 
Zitat:

Zitat von Saimen
Aber dann kommt drotzdem ein fehler :roll:

Wie wärs wenn du uns BITTE mal sagen würdest, WELCHER Fehler denn Auftritt :?:

Greetz
alcaeus

Saimen 17. Jul 2004 10:50

Re: Brauch den code für das geteilt beim Taschenrechner
 
Da steht Division durch null
und in der unit wird die zeile
SpinEdit3.Value:=SpinEdit1.Value div SpinEdit2.Value;

blau markiert

alcaeus 17. Jul 2004 10:53

Re: Brauch den code für das geteilt beim Taschenrechner
 
In diesem Fall, poste mal die if-Abfrage, mit der du gegen eine Division durch 0 schützt. Die bereits geposteten Codes sollten diesen Fehler allerdings verhindern!

Greetz
alcaeus

Sharky 17. Jul 2004 10:53

Re: Brauch den code für das geteilt beim Taschenrechner
 
Welches der Beispiele vervendest Du denn jetzt? Zeige mal etwas mehr Code.

Saimen 17. Jul 2004 10:54

Re: Brauch den code für das geteilt beim Taschenrechner
 
if (SpinEdit2.Value <> 1) and (SpinEdit2.Value <> 0) then begin
SpinEdit3.Value := SpinEdit1.Value div SpinEdit2.Value

supermuckl 17. Jul 2004 16:55

Re: Brauch den code für das geteilt beim Taschenrechner
 
da muss ein OR dazwischen und kein AND

// kommando zurück

alcaeus 17. Jul 2004 16:57

Re: Brauch den code für das geteilt beim Taschenrechner
 
Nein, das AND passt. Er will ja nur dividieren, wenn der SpinEdit2.Value nicht 0 und nicht 1 ist (aus welchem Grund auch immer er 1 verbieten will :roll: )
Deshalb hat sich hier keiner gemeldet, ich denke mal der Fehler liegt woanders, denn der Code stimmt so.

Greetz
alcaeus

Ultimator 17. Jul 2004 19:33

Re: Brauch den code für das geteilt beim Taschenrechner
 
Vermutlich will er die 1 verbieten, damit keiner auf die Idee kommt, eine Zahl durch 1 zu teilen, und so den gleichen Wet zu erhalten.

Die Muhkuh 17. Jul 2004 19:44

Re: Brauch den code für das geteilt beim Taschenrechner
 
Hi,

der Code von Saimen kann so nicht gehen!

Wie kann SpinEdit2 2 Werte haben?

Schreibs mal so:

Delphi-Quellcode:
if ((SpinEdit2.Value <> 0) and (SpinEdit3.Value <> 0)) or ((SpinEdit2.Value <> 1) and (SpindEdit3.Value <> 1)) then
begin
  ...
end;

alcaeus 17. Jul 2004 19:48

Re: Brauch den code für das geteilt beim Taschenrechner
 
Zitat:

Zitat von Saimen
if (SpinEdit2.Value <> 1) and (SpinEdit2.Value <> 0) then begin
SpinEdit3.Value := SpinEdit1.Value div SpinEdit2.Value

Also, wenn der Wert in SpinEdit2 nicht 1 und nicht 0 ist, dann soll gerechnet werden. Ich verstehe nicht, was hier das Problem ist... :roll:

Greetz
alcaeus

[add]
Als Alternative:
Delphi-Quellcode:
if not ((SpinEdit2.Value = 1) or (SpinEdit2.Value = 0)) then
Exit;
SpinEdit3.Value := SpinEdit1.Value div SpinEdit2.Value
[/add]

Die Muhkuh 17. Jul 2004 19:56

Re: Brauch den code für das geteilt beim Taschenrechner
 
@alceus


ich versteh das so:

//Falsch! Pfui.



Deine Alternative geht nicht? Bei Exit wird ja die Procedure verlassen, demnach wird nicht weitergemacht.



[edit] Upsi, ich hab immer mit = gedacht... [/edit]


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