Object Pascal im Detail - Eigene Datentypen definieren www.delphi-treff.de
71
4.5. Eigene Datentypen definieren
Wie wir in den folgenden Abschnitten sehen werden, gibt es in Delphi die Möglichkeit, Datentypen auf die eigenen Bedürfnisse anzupassen, z.B. einen Wertebereich einzuschränken wie beim Teilbereichstyp oder aus
mehreren Variablen zusammenzusetzen wie bei Records. In diesen Fall ist es ratsam, dem neuen Typ erst einmal einen Namen zu verpassen, unter dem man ihn später verwenden kann.
Bei „ei fa he Date t pe wie String, Real, Integer, Boolean usw. ist das natürlich nicht erforderlich.
4.5.1. Typdefinition
Eine Typdefinition wird in einem type-Block hinterlegt. Das Konstrukt ähnelt einer Variablendeklaration. Da aber statt einer Variablen ein Typ deklariert wird, ist das Folgende auch kein Variablen- sondern ein Typname.
Typnamen beginnen in Delphi mit einem großen T, wenn sich der Programmierer an den Styleguide gehalten hat. Statt eines Doppelpunkts wird ein Gleichheitszeichen verwendet.
I de folge de Beispiele i d zue st ei eue T p defi ie t „t pe u d a s hließe d ei e Va ia le o diese T p a gelegt „ a . I e hal ei e U it sähe das z.B. so aus:
program MeinProgramm; {APPTYPE CONSOLE}
uses SysUtils;
type TKleineZahl = 0..200;
var KleineZahl: TKleineZahl;
begin ...
4.5.2. Teilbereichstypen
Einen weiteren Datentyp gibt es noch, nämlich den Teilbereichstyp, auch Unterbereichstyp genannt. Hierüber kann man Variablen z. B. zwar den Typ Integer zuordnen, aber nicht den kompletten Definitionsbereich,
sondern nur einen Teilbereich davon: type TKleineZahl = 0..200;
var KleineZahl: TKleineZahl; Wir definieren hier zuerst einen eigenen Typ mit dem Namen TKleineZahl. Von diesem Typ können wir
anschließend beliebig viele Variablen deklarieren und ihn natürlich auch in Methoden-Signaturen für Parametertypen verwenden.
Object Pascal im Detail - Eigene Datentypen definieren www.delphi-treff.de
72
Der Variablen KleineZahl lassen sich jetzt nur ganze Zahlen zwischen 0 und 200 zuweisen.
4.5.3. Aufzählungstypen „Enumeration Types“
Will man nicht mit Zahlen, aber auch nicht mit Freitext arbeiten, kann man einen Aufzählungstyp definieren. Das macht den Code besser lesbar. Die einzelnen Werte werden fest definiert und sind zur Laufzeit nicht
erweiterbar. type TFarbe = blau, gelb, gruen, rot;
var Farbe: TFarbe; Intern werden die Werte bei Null beginnend durchnummeriert und haben deshalb eine feste Reihenfolge. Über
die Funktion ord lässt sich die Position bestimmen. Wichtige Funktionen zum Arbeiten mit Aufzählungstypen sind:
ord gibt die Position des Bezeichners zurück
pred gibt den Vorgänger zurück
succ
gibt den Nachfolger zurück
low gibt den niedrigsten Wert zurück
high gibt den höchsten Wert zurück
Die Typen Integer und Char gehören ebenfalls zu den ordinalen abzählbaren Typen, d.h. die Werte lassen
sich in einer Reihenfolge anordnen, weshalb o.g. Funktionen auf sie ebenfalls angewandt werden können.
4.5.4. Mengentypen „Set“