Enum Type/de

From Lazarus wiki
Revision as of 18:59, 21 July 2013 by Swen (talk | contribs)

Deutsch (de) English (en) français (fr)

Zurück zu den Datentypen.

Wertebereich:
bei 0 .. 255 Zeichen ist der Datentyp automatisch Byte
bei 255 .. 65535 Zeichen ist der Datentyp automatisch Word
über 65635 Zeichen ist der Datentyp automatisch Longword
Speicherbedarf: abhängig vom Datentyp und der Anzahl der Elemente

Eigenschaft:
Beim Datentyp Enum Type handelt es sich um eine Aufzählung ganzzahliger vorzeichenloser Konstanten.
Zusätzlich kann für den Datentyp mit Hilfe des Schalters der zu verwendende vorzeichenlose Integer Datentyp festgelegt werden.
bei 0 .. 255 Zeichen die Schalter für den Datentyp Word:

  • {$Z2} oder {$PACKENUM 2}

bei 0 .. 255 Zeichen die Schalter für den Datentyp Longword:

  • {$Z4} oder {$PACKENUM 4}

bei 255 .. 65535 Zeichen ist der Datentyp Longword:

  • {$Z4} oder {$PACKENUM 4}

Die Werte der Aufzählung erhöhen sich zu nächsten Element immer um 1.

Beispiele für die Deklarierung des Datentyps Enum:
Die Werte der Aufzählung beginnen standardmäßig bei 0:

Type
  {$PACKENUM 2}
  LargeEnum = (Null, Eins, Zwei);

Die Werte der Aufzählung beginnen standardmäßig bei 0, es sei denn, es wird der Aufzählung ein anderer Anfangswert zugewiesen. Dann beginnt die Zählung mit dem zugwiesenen Anfangswert.

Type
  {$PACKENUM 4}
  SmallEnum = (Sechs := 6, Sieben, Acht);


Wird mitten in der Aufzählung einem Element ein höherer Wert zugewiesen, dann wird ab diesem Wert weitergezählt.

Type
  {$PACKENUM 1}
  MiddleEnum = (Null, Zehn := 10, Elf, Zwoelf);


Explizite (ausdrückliche) Verwendung des Datentyps Byte für die Aufzählung.

Type
  byte = (Null, Eins, Zwei);


Beispiele für die Zuweisung des Datentyps Enum:

Var 
  S : SmallEnum;
  M : MiddleEnum;
  L : LargeEnum;


Beispiele für die Konvertierung des Datentyps Enum:

  Application.MessageBox(PChar(IntToStr(Qword(Ord(Sechs)))),'Konvertierung',MB_OK);
  Application.MessageBox(PChar(IntToStr(Qword(Ord(S.Sechs)))),'Konvertierung',MB_OK);



--Olaf 16:55, 4 October 2012 (UTC)