Hallo,
ich habe gerade ein für mich unlogisches Problem (und ich kann nicht danach suchen, weil "in" und "if" zu kurz für die Suche sind).
Meine Situation im angehaltenen Programm:
Code:
xPos=527
yPos=98
xMin=238
xMax=709
yMin=26
yMax=551
Ich möchte, daß nur in einem Bereich eine Aktion erfolgt, also habe ich sie so eingeklammert:
Delphi-Quellcode:
if (xPos in [xMin..xMax]) and (yPos in [yMin..yMax]) then begin
//Code
end;
Obwohl die obigen Werte xPos und yPos genau in diesen Bereich passen und somit beide Abfragen aus meiner Sicht true sind, wird der Code übersprungen.
Prüfe ich die Werte im angehaltenen Zustand in der
IDE und zeige mit der Maus auf yMax, zeigt mir der Hint "yMin..yMax | 26" an, statt den yMax-Wert; auch die Auswerte-Funktion kommt mit dem "Zahl in [a..b]" nicht klar.
Ist das ein Bug?
Muss ich das immer umständlich ausführlich schreiben (if (posX>=xMin) and (posX<=xMax) and...)? Oder gibt's da eine Syntax, die korrekt funktioniert, wie ich es gehofft hatte?