![]() |
Delphi-Version: 10.1 Berlin
Bug bei Auswertung: if (Zahl in [min..max]) then .. ??
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:
Ich möchte, daß nur in einem Bereich eine Aktion erfolgt, also habe ich sie so eingeklammert:
xPos=527
yPos=98 xMin=238 xMax=709 yMin=26 yMax=551
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.:gruebel: 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? :pale: |
AW: Bug bei Auswertung: if (Zahl in [min..max]) then .. ??
"in" lässt in den Klammern nur 256 Werte zu.
Also 0..255 oder 100..355 etc. |
AW: Bug bei Auswertung: if (Zahl in [min..max]) then .. ??
Nutze InRange aus der Math-Unit...
|
AW: Bug bei Auswertung: if (Zahl in [min..max]) then .. ??
System.Types.PtInRect()
|
AW: Bug bei Auswertung: if (Zahl in [min..max]) then .. ??
Nutze
![]() Beispiele:
Delphi-Quellcode:
showmessage( ptInRect( Rect( 238,26,709,551 ), Point( 240,30 ) ).ToInteger.ToString );
showmessage( ptInRect( Rect( 238,26,709,551 ), Point( 229,400 ) ).ToInteger.ToString ); |
AW: Bug bei Auswertung: if (Zahl in [min..max]) then .. ??
Ah cool.
Zitat:
Zitat:
Zitat:
Heute habe ich wieder was dazu gelernt :dp: |
AW: Bug bei Auswertung: if (Zahl in [min..max]) then .. ??
Und warum nicht
Delphi-Quellcode:
Gruß
if (xpos>=xmin) and (xpos<=xmax) then .......
K-H |
AW: Bug bei Auswertung: if (Zahl in [min..max]) then .. ??
Zitat:
|
AW: Bug bei Auswertung: if (Zahl in [min..max]) then .. ??
Oder du verwendest die
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:13 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