Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi E1012 Konstantenausdruck verletzt untere Grenzen (https://www.delphipraxis.net/110480-e1012-konstantenausdruck-verletzt-untere-grenzen.html)

BeBored 18. Mär 2008 18:28


E1012 Konstantenausdruck verletzt untere Grenzen
 
Hallo,

ich weiß das Thema war schon einmal aber die Lösungen haben mir nicht geholfen.
Das ist mein Problem:
Delphi-Quellcode:
procedure TForm1.imgMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  stat.Panels[1].Text := IntToStr(X);
  if (X in [120..290]) and (Y in [89..91]) then
      begin
        stat.Panels[1].Text := 'foo';
      end;
Es kommt die Meldung
Zitat:

E1012 Konstantenausdruck verletzt untere Grenzen
was ich nicht so ganz verstehe, da es doch nur bis 290 geht... sehe ich das irgendwie falsch? :wiejetzt:
Ich denke ja, denn eine Lösung wird es ja sicher geben, nur komme ich nicht drauf.

jfheins 18. Mär 2008 18:31

Re: E1012 Konstantenausdruck verletzt untere Grenzen
 
Sets gehen nur bis 255 (Byte) - der Konstantenausdruck verletzt also die obere Grenze ;)

Nein, es gibt keine erweiterungsmöglichkeit, du musst dir wohl eine kleine Funktion schreiben:

function isBetween(value, min, max: Integer):Boolean;

;)

BeBored 18. Mär 2008 18:34

Re: E1012 Konstantenausdruck verletzt untere Grenzen
 
Ok werde ich machen, danke dir. :cheers:

mkinzler 18. Mär 2008 18:37

Re: E1012 Konstantenausdruck verletzt untere Grenzen
 
Oder , da der Bereich weniger als 255 Elemente umfasst:
Delphi-Quellcode:
X-120 in [0..170])

BeBored 18. Mär 2008 18:47

Re: E1012 Konstantenausdruck verletzt untere Grenzen
 
Nach dem ich noch einmal wegen between gesucht habe (nur interessehalber), bin ich hier auf eine gute Lösung von sakura gestoßen:
IsBetween
Delphi-Quellcode:
if (I >= 8) and (I <= 12) then ....
Nur falls noch jemand das Problem haben sollte... :dp:

Muetze1 18. Mär 2008 18:51

Re: E1012 Konstantenausdruck verletzt untere Grenzen
 
...oder einfach die Funktion Delphi-Referenz durchsuchenInRange() benutzen...

BeBored 18. Mär 2008 18:56

Re: E1012 Konstantenausdruck verletzt untere Grenzen
 
Zitat:

Zitat von Muetze1
...oder einfach die Funktion Delphi-Referenz durchsuchenInRange() benutzen...

Also InRange (VarInRange) finde ich die eleganteste Lösung, danke Muetze1.


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