* Simplify GetEnumNameCount (by Lagprogramming). Fixes issue #40411

This commit is contained in:
Michaël Van Canneyt 2023-08-24 08:43:51 +02:00
parent 1a4428536f
commit 6a07a508b8

View File

@ -1212,29 +1212,21 @@ begin
end; end;
end; end;
function GetEnumNameCount(enum1: PTypeInfo): SizeInt; function GetEnumNameCount(enum1: PTypeInfo): SizeInt;
var var
PS: PShortString; PS: PShortString;
PT: PTypeData;
Count: SizeInt;
begin begin
PT:=GetTypeData(enum1);
if enum1^.Kind=tkBool then if enum1^.Kind=tkBool then
Result:=2 Result:=2
else else
begin begin
Count:=0; PS:=@GetTypeData(enum1)^.NameList;
Result:=0; Result:=-1;
PS:=@PT^.NameList;
While (PByte(PS)^<>0) do While (PByte(PS)^<>0) do
begin begin
PS:=PShortString(pointer(PS)+PByte(PS)^+1); PS:=PShortString(pointer(PS)+PByte(PS)^+1);
Inc(Count); Inc(Result);
end; end;
{ the last string is the unit name }
Result := Count - 1;
end; end;
end; end;