Try the next
var
Data: PTypeData;
i: Integer;
begin
Result := 0;
Data := GetTypeData(TypeInfo(TyourEnum));
for i := Data^.MinValue to Data^.MaxValue
Inc(Result)
end
or
var
i: TyourEnum;
begin
Result := 0;
for i := Low(TyourEnum) to High(TyourEnum) do
Inc(Result)
end
But personally I don't use the enum types with
predefined value for items
With best regards, Mike Shkolnik
EMail: [EMAIL PROTECTED]
http://www.scalabium.com
--- Jonathan Mora <[EMAIL PROTECTED]> wrote:
>
> won't work with
>
> type
> SomeEnum = (enum1=1, enum2, enum3=9, enum4,
> enum5=50);
>
>
> --- Mike Shkolnik <[EMAIL PROTECTED]> wrote:
> > Result := Ord(High(aEnum))-Ord(Low(aEnum))+1
> >
> > Or use the RTTI (TypInfo unit) and read the
> > MaxValue/MinValue from type:
> > var
> > Data: PTypeData;
> > begin
> > Data := GetTypeData(TypeInfo(TEnum));
> > <you need the Data^.MinValue and Data^.MaxValue>
> > end
> >
> > With best regards, Mike Shkolnik
> > EMail: [EMAIL PROTECTED]
> > http://www.scalabium.com
> >
> > --- Andries Bos <[EMAIL PROTECTED]> wrote:
> > >
> > > hello
> > >
> > > How do i get the amount of enumerated types
> > defined:
> > >
> > > Some code:
> > > type
> > > SomeEnum = (enum1, enum2, enum3);
> > >
> > > function ABC : integer
> > > var AEnum : Someenum;
> > > begin
> > > result := ord(high(aEnum))
> > > end;
> > >
> > > Result will return the ordinal of the highest,
> but
> > > is there a direct way of getting the count of
> this
> > > enum list?
> > >
> > > Regards
> > >
> > > andries
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
-----------------------------------------------------
Home page: http://groups.yahoo.com/group/delphi-en/
To unsubscribe: [EMAIL PROTECTED]
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/delphi-en/
<*> To unsubscribe from this group, send an email to:
[EMAIL PROTECTED]
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/