Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Wie läßt sich die Anzahl der Elemente eines AufzählungsTyps bestimmen? (https://www.delphipraxis.net/212901-wie-laesst-sich-die-anzahl-der-elemente-eines-aufzaehlungstyps-bestimmen.html)

Andreas13 21. Apr 2023 12:10

Delphi-Version: XE5

Wie läßt sich die Anzahl der Elemente eines AufzählungsTyps bestimmen?
 
Hallo Community,
ich möchte gerne die die Anzahl der Elemente eines AufzählungsTyps ermitteln.
Beispiel:
Delphi-Quellcode:
Type
  MyType = (aa, bb, cc, dd, ee); // --> 5 sollte bestimmt werden
Gibt es dazu eine Delphi-Funktion?

Danke für jede Idee + Anregung im Voraus!

Viele Grüße
Andreas

Delphi.Narium 21. Apr 2023 12:50

AW: Wie läßt sich die Anzahl der Elemente eines AufzählungsTyps bestimmen?
 
Delphi-Quellcode:
Anzahl := High(MyType) + 1;
https://www.delphipraxis.net/104698-...ermitteln.html

Uwe Raabe 21. Apr 2023 12:58

AW: Wie läßt sich die Anzahl der Elemente eines AufzählungsTyps bestimmen?
 
Funktioniert aber nicht bei solchen Deklarationen (aus dem Delphi DokWiki):
Delphi-Quellcode:
type
  Size = (Small = 5, Medium = 10, Large = Small + Medium);

Delphi.Narium 21. Apr 2023 12:59

AW: Wie läßt sich die Anzahl der Elemente eines AufzählungsTyps bestimmen?
 
Steht alles ausführlich im verlinkten Post aus der DelphiPraxis ;-)

Andreas13 21. Apr 2023 13:11

AW: Wie läßt sich die Anzahl der Elemente eines AufzählungsTyps bestimmen?
 
Zitat:

Zitat von Delphi.Narium (Beitrag 1521344)
Delphi-Quellcode:
Anzahl := High(MyType) + 1;
https://www.delphipraxis.net/104698-...ermitteln.html

Sorry Delphi.Narium,
has hatte ich bereits probiert: XE5 meldet:
[dcc32 Fehler] Anzahl_Elemente_AufzaehlungsTyps_1.dpr(52): E2010 Inkompatible Typen: 'Integer' und 'MyType'
Grüße
Andreas

Andreas13 21. Apr 2023 13:13

AW: Wie läßt sich die Anzahl der Elemente eines AufzählungsTyps bestimmen?
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1521345)
Funktioniert aber nicht bei solchen Deklarationen (aus dem Delphi DokWiki):
Delphi-Quellcode:
type
  Size = (Small = 5, Medium = 10, Large = Small + Medium);

Danke Uwe,
aber obige Type-Deklaration paßt leider nicht zu meinem Anwendungsfall :(
Grüße, Andreas

Delphi.Narium 21. Apr 2023 13:18

AW: Wie läßt sich die Anzahl der Elemente eines AufzählungsTyps bestimmen?
 
Zitat:

Zitat von Andreas13 (Beitrag 1521347)
Zitat:

Zitat von Delphi.Narium (Beitrag 1521344)
Delphi-Quellcode:
Anzahl := High(MyType) + 1;
https://www.delphipraxis.net/104698-...ermitteln.html

Sorry Delphi.Narium,
has hatte ich bereits probiert: XE5 meldet:
[dcc32 Fehler] Anzahl_Elemente_AufzaehlungsTyps_1.dpr(52): E2010 Inkompatible Typen: 'Integer' und 'MyType'
Grüße
Andreas

Dann die Variante mit der For-Schleife aus verlinktem Post probieren.
Delphi-Quellcode:
var
  i: TMyEnum;
  Zahler: Integer;
begin
  Zahler := 0;
  for i := Low(TMyEnum) to High(TMyEnum) do
    Inc(Zaehler);
end;

Andreas13 21. Apr 2023 13:18

AW: Wie läßt sich die Anzahl der Elemente eines AufzählungsTyps bestimmen?
 
So funktioniert es:
Delphi-Quellcode:
Anzahl := Ord(High(MyType)) + 1;
Danke Euch für die Hilfe!

Grüße, Andreas

dummzeuch 21. Apr 2023 13:24

AW: Wie läßt sich die Anzahl der Elemente eines AufzählungsTyps bestimmen?
 
Zitat:

Zitat von Andreas13 (Beitrag 1521347)
Zitat:

Zitat von Delphi.Narium (Beitrag 1521344)
Delphi-Quellcode:
Anzahl := High(MyType) + 1;
https://www.delphipraxis.net/104698-...ermitteln.html

Sorry Delphi.Narium,
has hatte ich bereits probiert: XE5 meldet:
[dcc32 Fehler] Anzahl_Elemente_AufzaehlungsTyps_1.dpr(52): E2010 Inkompatible Typen: 'Integer' und 'MyType'
Grüße
Andreas

Delphi-Quellcode:
Anzahl := Ord(High(MyType))+1;

Andreas13 21. Apr 2023 13:26

AW: Wie läßt sich die Anzahl der Elemente eines AufzählungsTyps bestimmen?
 
Danke, Thomas! :-D
bin inzwischen auch drauf gekommen...:oops:
Grüße, Andreas


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:43 Uhr.
Seite 1 von 2  1 2      

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-2025 by Thomas Breitkreuz