Anzahl der Enum Items bestimmen

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6200
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Anzahl der Enum Items bestimmen

Beitrag von af0815 »

Ich habe da eine Frage, wie man auf die richtige Anzahl von Enums kommt.

An und für sich sind es 7 Einträge in der Enummeration, das Ergebnis ist aber 16. Das die Enums fixiert sind, ist der Umgebung geschuldet, da ich auf vorhanden Werte in anderen Systemen Rücksicht nehmen muss.
Ich habe aber auch keine Methode gefunden, wie ich über 'faule' Werte drüberspringen kann. Das würde auch schon reichen.

Sehr ihr da eine Lösung ?

Code: Alles auswählen

.....
type
  ETeil = (TeilNone=0, TeilA=1, TeilB=2, TeilC=3, TeilGA=10, TeilHBL=11, TeilBM=15);

......

uses
  uTeilTypen, TypInfo;

{ TForm1 }

procedure TForm1.BuAnzahlClick(Sender: TObject);
var
  Cnt: Integer;    // Gesuchte Anzahl von ENumElementen in TTeil
  S: ETeil;
  N: string;       // Name

begin
  Cnt:= 0;
  for S:= TeilNone to TeilBM do begin
    Cnt:= Cnt +1;
  end;
//  for S in ETeil do begin
//    Name := '';
//    Name := GetEnumName(TypeInfo(ETeil),ord(S));
//    Cnt:= Cnt +1;
//  end;
  LblAnzahl.Caption:= IntToStr(Cnt);
end;

Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
theo
Beiträge: 10468
Registriert: Mo 11. Sep 2006, 19:01

Re: Anzahl der Enum Items bestimmen

Beitrag von theo »

Es gibt hier eine Diskussion zu "Enum next element"
https://forum.lazarus.freepascal.org/in ... ic=42032.0
Das dürfte etwas Ähnliches sein.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6200
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Anzahl der Enum Items bestimmen

Beitrag von af0815 »

theo hat geschrieben:
Mi 6. Jul 2022, 14:12
Es gibt hier eine Diskussion zu "Enum next element"
https://forum.lazarus.freepascal.org/in ... ic=42032.0
Das dürfte etwas Ähnliches sein.
Ist genau über das, Danke damit kann ich was anfangen. Aktuell habe ich es brutaler gelöst, aber die Diskussion in deinem Link ist sehr gut. Die muss ich mir mal langsam zu Gemüte führen, damit ich den Hintergrund noch besser verstehe.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten