Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi IN Function mit negativen konstanten (https://www.delphipraxis.net/44545-function-mit-negativen-konstanten.html)

Gruber_Hans_12345 20. Apr 2005 17:15


IN Function mit negativen konstanten
 
Warum kann ich eigentlich IN nicht verwenden, wenn ich negative Werte habe ?

Delphi-Quellcode:
const t1 = -1;
const t2 = -2;


function CheckIt(Value : integer) : Boolean;
begin
  Result := Value in [t1, t2];
end;
Fehlermeldung : Constant expression violates subrange bounds

marabu 20. Apr 2005 19:19

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 09:43 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