Forum: Object-Pascal / Delphi-Language
Delphi
by Uwe Raabe,
28. Mai 2010
Das gilt zwar für den inneren Teil der Schleife, aber nicht für die Schleife selbst.
Wenn du mal einen Breakpoint auf das Begin setzt, wirst du sehen, daß der Debugger insgesamt 9x anhält. Bei den ersten 3x wird der Schleifenbody durchlaufen, bei den internen Werten 3 bis 8 übersprungen. Erst der interne Wert 8 beendet dabei die for-Schleife.
Es passiert zwar immer noch das Richtige (wär...
Forum: Object-Pascal / Delphi-Language
Delphi
by Uwe Raabe,
28. Mai 2010
Genau genommen wird die Schleife sogar nicht dreimal sondern achtmal durchlaufen, da das Set in ein Byte passt. Man kann das sehr schön im Debugger sehen. Das heißt auch, daß die Überprüfung Variable in Set achtmal durchgeführt wird, obwohl das Set nur drei Elemente hat. Erst beim Ordinalwert 8 bricht dir Schleife ab.
Unter Performanceaspekten ist dieses Konstrukt also eher schädlich.
Forum: Object-Pascal / Delphi-Language
Delphi
by Uwe Raabe,
28. Mai 2010
So geht es (ich hab mal den Namen verkürzt):
type
TMyEnum = (
atMapping,
atVisible,
atNotNull
);
TMyEnumSet = set of TMyEnum;