![]() |
Re: Maximum eines Wertebereiches ermitteln
Zitat:
Zitat:
|
Re: Maximum eines Wertebereiches ermitteln
Delphi-Quellcode:
Was sollte dann hier rauskommen? Ord('z')?
const testrange = ['a'..'z'];
|
Re: Maximum eines Wertebereiches ermitteln
Delphi-Quellcode:
i=255 ist nur ein beliebiger Wert, welcher auf viele SET passend gewählt sein sollte.
const MONTH_DAY = [1..28];
var i: Integer; begin i := 255; while (i >= 0) do if i in MONTH_DAY then break else Dec(i); ShowMessage(IntToStr(i)); end; korrekter wäre es so
Delphi-Quellcode:
Man könnte aber auch die RTTI bemühen, aber diese hab bis einschließlich D2009 'ne "Macke" und kommt mit SETs nicht klar, welche Lücken aufweisen, wie z.B. [1,3,5,50].
type TMONTH_DAY = 1..31;
const MONTH_DAY: Set of TMONTH_DAY = [1..28]; var i: TMONTH_DAY; begin i := High(TMONTH_DAY); while (i >= Low(TMONTH_DAY)) do if i in MONTH_DAY then break else Dec(i); ShowMessage(IntToStr(Ord(i))); end; In soeinem Fall gibt es in der RTTI keine Informationen über die Werte innerhalb des Arrays ... also absolut keine Inforationen (keine Namen und auch keine "Belegungsliste") |
Re: Maximum eines Wertebereiches ermitteln
Wenn man mit den etwas veränderten Definitionen
Delphi-Quellcode:
leben kann, sind die MONTH_DAY-Konstanten via Low(MONTH_DAY) und High(MONTH_DAY) verfügbar. Bei Values geht's nur mit MinIntValue(VALUES) und MaxIntValue(VALUES), also nicht konstant.
type
MONTH_DAY = 1..28; const VALUES : array[0..3] of integer = (1,50,3,5); |
Re: Maximum eines Wertebereiches ermitteln
Zitat:
Delphi-Quellcode:
if irgendeinwert in MONTH_DAY then bla;
|
Re: Maximum eines Wertebereiches ermitteln
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:39 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 by Thomas Breitkreuz