![]() |
IN Function mit negativen konstanten
Warum kann ich eigentlich IN nicht verwenden, wenn ich negative Werte habe ?
Delphi-Quellcode:
Fehlermeldung : Constant expression violates subrange bounds
const t1 = -1;
const t2 = -2; function CheckIt(Value : integer) : Boolean; begin Result := Value in [t1, t2]; end; |
Re: IN Function mit negativen konstanten
Vermutlich weil für jedes element eines set gelten muss: 0 <= Ord(element) <= 255.
set of byte ist okay. set of integer geht nicht. type z = -128..127 schaut erfolgversprechend aus, weil der Wertebereich für ein set of z vordergründig nur 256 Elemente hat - der Compiler nimmt den base type integer und mault dann wegen "mehr als 256 Elemente". Wenn du mit negativen oder nicht-zusammenhängenden Zahlenbereichen hantieren willst, dann muss du - Wohl oder Übel - eine Abbildung vorschalten. Grüße vom marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:59 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