Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Definieren von Byte-Bereichsüberschreitungen (https://www.delphipraxis.net/115811-definieren-von-byte-bereichsueberschreitungen.html)

DevidEspenschied 18. Jun 2008 12:03


Definieren von Byte-Bereichsüberschreitungen
 
Hallo,

ich habe eine Byte-Variable deklariert, welche nur Werte im Bereich zwischen 30 und 122 annehmen darf:

Delphi-Quellcode:
VAR ByteVariable : 30..122;
BEGIN
  ByteVariable:=120;
  Inc(ByteVariable, 10);
END;
Leider führt die Inkrementation dazu, dass aus den zugewiesenen 120 eine 130 gemacht wird, obwohl ich das mit der Variablendeklaration eigentlich ausschließen wollte. Wie kann ich eine Byte-Variable so deklarieren, dass die Erhöhung um 10 hier die 38 liefert ? Der Wert soll also am Anfang wieder hinaddiert werden.

mkinzler 18. Jun 2008 12:06

Re: Definieren von Byte-Bereichsüberschreitungen
 
Hast du die Bereichsprüfung aktiviert?

FAlter 18. Jun 2008 12:15

Re: Definieren von Byte-Bereichsüberschreitungen
 
Hi,

du benötigst -, mod und +

Achtung bei evtl. negativen Zwischenergebnissen!

Mfg
FAlter

Reinhard Kern 18. Jun 2008 12:51

Re: Definieren von Byte-Bereichsüberschreitungen
 
Zitat:

Zitat von devidespe
Hallo,

ich habe eine Byte-Variable deklariert, welche nur Werte im Bereich zwischen 30 und 122 annehmen darf:
...

Hallo,

bei einer solchen Variablen wirst du die Rechenoperationen +,-,inc selbst programmieren müssen und dabei Über- und Unterläufe berücksichtigen.

Gruss Reinhard

DevidEspenschied 18. Jun 2008 13:11

Re: Definieren von Byte-Bereichsüberschreitungen
 
Zitat:

Zitat von mkinzler
Hast du die Bereichsprüfung aktiviert?

Wenn ich die Bereichsüberprüfung aktiviere, stürzt mein Programm mit einer Exception ab.

Ich denke, dass ich da was selbst mit INC und DEC basteln muss...

Muetze1 18. Jun 2008 13:56

Re: Definieren von Byte-Bereichsüberschreitungen
 
Zitat:

Zitat von devidespe
Wenn ich die Bereichsüberprüfung aktiviere, stürzt mein Programm mit einer Exception ab.

Ich vermute mal ganz stark, das ist die Bereichsprüfung? Wo liegt das Problem? :gruebel:

Wenn du keine richtiges Exceptionhandling hast und es die App killt, dann kannst du des doch nicht Delphi anlasten - er wollte nur nach deinen Wünschen entsprechend dich über diese Überschreitung informieren.

DevidEspenschied 18. Jun 2008 14:01

Re: Definieren von Byte-Bereichsüberschreitungen
 
In Delphi ist es die "Bereichsüberprüfung", und die ist bei mir standardseitig deaktiviert.

Ich habe nun eine REPEAT-UNTIL Schleife zur Lösung des Problems hergenommen und es funktioniert.

Und fest steht: Delphi ist in keinem Fall Schuld an einer Exception, die darauf basierend verursacht wird. Das war vielleicht ein kleines Missverständnis.

Muetze1 18. Jun 2008 14:12

Re: Definieren von Byte-Bereichsüberschreitungen
 
Zitat:

Zitat von devidespe
In Delphi ist es die "Bereichsüberprüfung", und die ist bei mir standardseitig deaktiviert.

Schon immer so gewesen, da es extra Code ist mit extra Anweisungen die z.T. deutlich Zeit kosten.

Zitat:

Zitat von devidespe
Und fest steht: Delphi ist in keinem Fall Schuld an einer Exception, die darauf basierend verursacht wird. Das war vielleicht ein kleines Missverständnis.

Jo, ich kapiers immernoch nciht richtig, aber das habe ich dann falsch verstanden.


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