Typdeklaration

Aus Appmethod Topics
Wechseln zu: Navigation, Suche

Nach oben zu Datentypen, Variablen und Konstanten - Index

Dieses Thema enthält eine Beschreibung der Deklarationssyntax für Typen in Object Pascal.

Syntax für Typdeklarationen

Bei einer Typdeklaration wird ein Bezeichner angegeben, der einen Typ festlegt. Die Syntax für eine Typdeklaration lautet

type newTypeName = type

Hierbei ist newTypeName (neuerTyp) ein gültiger Bezeichner. Nach der Typdeklaration

type TMyString = string;

ist beispielsweise die folgende Variablendeklaration möglich:

var S: TMyString;

Die Typdeklaration selbst liegt nicht im Gültigkeitsbereich des Typbezeichners (dies gilt allerdings nicht für Zeigertypen). Aus diesem Grund kann beispielsweise ein Record-Typ definiert werden, der sich selbst rekursiv verwendet.

Wenn Sie einen Typ deklarieren, der mit einem vorhandenen Typ identisch ist, behandelt der Compiler den neuen Typbezeichner als Alias für den alten. In den Deklarationen

type TValue = Real;
var
  X: Real;
  Y: TValue;

haben X und Y denselben Typ. Zur Laufzeit ist keine Unterscheidung zwischen TValue und Real möglich (was normalerweise auch nicht nötig ist). Wenn der neue Typ aber Laufzeit-Typinformationen bereitstellen soll (z. B. zur Bearbeitung von Eigenschaften eines bestimmten Typs in einem Eigenschaftseditor), muss eine Unterscheidung zwischen den Typen möglich sein. Verwenden Sie in solchen Fällen die folgende Syntax:

type newTypeName = type KnownType

Beispiel:

type TValue = type Real;

Durch diese Anweisung wird der Compiler veranlasst, einen neuen, eigenen Typ namens TValue zu erzeugen.

Bei var-Parametern müssen formale und aktuelle Typen identisch sein. Beispiel:

type
  TMyType = type Integer
  procedure p(var t:TMyType);
  begin
  end;

procedure x;
var
  m: TMyType;
  i : Integer;
begin
  p(m); // Funktioniert
  p(i); // Fehler! Formale und aktuelle Typen müssen identisch sein.
end;

Anmerkung:  Dies gilt nur für var-Parameter, nicht für const- oder Wert-Parameter.

Siehe auch