@Ares wie kommst du jetzt auf eine Klasse (TClass)?
i muß den selben Typ wie der Enumerator haben, also TMyEnum (oder wie er bei dir heißt.)
Try-Except ist hierbei unnötig, wo sollte auch eine
Exception auftreten?
und jetzt rate mal wie oft die For-Schleife durchlaufen wird ... genau "High-Low+1"-mal ... und da nur ein Inc drinsteht, wleches die Durchläufe zählt, kann man sich die Durchläufe doch auch gleich ausrechen
Delphi-Quellcode:
type
TMyEnum = (meEins, meZwei, meDrei);
TMyEnumEx = (mxEins=1, mxZwei=2, mxSechs=6);
const
MyEnumEx: Set of TMyEnumEx = [mxEins, mxZwei, mxSechs];
procedure TForm1.Button1Click(Sender: TObject);
var
i: TMyEnum;
i2: TMyEnumEx;
Zaehler1, Zaehler2, Zaehler3, Zaehler4, Zaehler5: Integer;
S: String;
begin
Zaehler1 := 0;
for i := Low(TMyEnum) to High(TMyEnum) do
Inc(Zaehler1);
Zaehler2 := Ord(High(TMyEnum)) - Ord(Low(TMyEnum)) + 1;
Zaehler3 := 0;
for i2 := Low(TMyEnumEx) to High(TMyEnumEx) do
Inc(Zaehler3);
Zaehler4 := Ord(High(TMyEnumEx)) - Ord(Low(TMyEnumEx)) + 1;
Zaehler5 := 0;
for i2 := Low(TMyEnumEx) to High(TMyEnumEx) do
if i2 in MyEnumEx then
Inc(Zaehler5);
S := Format('TMyEnum - For: %d'#13#10
+ 'TMyEnum - Math: %d'#13#10
+ 'TMyEnumEx - For: %d'#13#10
+ 'TMyEnumEx - Math: %d'#13#10
+ 'TMyEnumEx - Const: %d',
[Zaehler1, Zaehler2, Zaehler3, Zaehler4, Zaehler5]);
Application.MessageBox(PChar(S), '');
end;