Ordinale und aufgezählte Datentypen für Delphi

click fraud protection

Delphi Programmiersprache ist ein Beispiel für eine stark typisierte Sprache. Dies bedeutet, dass alle Variablen von einem Typ sein müssen. Ein Typ ist im Wesentlichen ein Name für eine Art von Daten. Wenn wir eine Variable deklarieren, müssen wir ihren Typ angeben, der die Menge der Werte bestimmt, die die Variable enthalten kann, und die Operationen, die für sie ausgeführt werden können.

Viele der in Delphi integrierten Datentypen, wie z. B. Integer oder Stringkönnen verfeinert oder kombiniert werden, um neue Datentypen zu erstellen. In diesem Artikel erfahren Sie, wie Sie benutzerdefinierte Ordnungsdatentypen in erstellen Delphi.

Ordnungszahlen

Die bestimmenden Merkmale von ordinalen Datentypen sind: Sie müssen aus einer endlichen Anzahl von Elementen bestehen und in irgendeiner Weise geordnet sein.

Die häufigsten Beispiele für ordinale Datentypen sind alle Integer-Typen sowie Char und Boolescher Wert Art. Genauer gesagt verfügt Object Pascal über 12 vordefinierte Ordinaltypen: Integer, Shortint, Smallint, Longint, Byte, Word, Cardinal, Boolean, ByteBool, WordBool, LongBool und Char. Es gibt auch zwei andere Klassen von benutzerdefinierten Ordnungsarten: Aufzählungstypen und Unterbereichstypen.

instagram viewer

Bei allen Ordnungsarten muss es sinnvoll sein, vorwärts oder rückwärts zum nächsten Element zu wechseln. Beispielsweise sind reale Typen keine Ordnungszahlen, da es keinen Sinn macht, sich vorwärts oder rückwärts zu bewegen. Die Frage "Was ist der nächste Real nach 2.5?" ist bedeutungslos.

Da per Definition jeder Wert außer dem ersten einen eindeutigen Vorgänger und jeder Wert außer dem letzten einen eindeutigen Nachfolger hat, sind mehrere vordefiniert Funktionen werden beim Arbeiten mit Ordnungszahlen verwendet:

Funktion Bewirken
Ord (X) Gibt den Index des Elements an
Pred (X) Geht zu dem Element, das im Typ vor X aufgeführt ist
Succ (X) Geht zu dem Element, das im Typ nach X aufgeführt ist
Dec (X; n) Verschiebt n Elemente zurück (wenn n weggelassen wird, wird 1 Element zurück verschoben)
Inc (X; n) Verschiebt n Elemente vorwärts (wenn n weggelassen wird, wird 1 Element vorwärts bewegt)
Niedrig (X) Gibt den niedrigsten Wert im Bereich des ordinalen Datentyps X zurück
Hoch (X) Gibt den höchsten Wert im Bereich des ordinalen Datentyps X zurück


Beispielsweise gibt High (Byte) 255 zurück, da der höchste Wert vom Typ Byte 255 ist, und Succ (2) gibt 3 zurück, weil 3 der Nachfolger von 2 ist.

Hinweis: Wenn wir versuchen, Succ zu verwenden, generiert Delphi beim letzten Element a Laufzeitausnahme wenn die Bereichsprüfung aktiviert ist.

Delphi-Aufzählungstyp

Der einfachste Weg, ein neues Beispiel für einen Ordinaltyp zu erstellen, besteht darin, eine Reihe von Elementen in einer bestimmten Reihenfolge aufzulisten. Die Werte haben keine inhärente Bedeutung und ihre Ordinalität folgt der Reihenfolge, in der die Bezeichner aufgelistet sind. Mit anderen Worten, eine Aufzählung ist eine Liste von Werten.

Art TWeekDays = (Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag);

Sobald wir einen aufgezählten Datentyp definiert haben, können wir Variablen von diesem Typ deklarieren:

var SomeDay: TWeekDays;

Der Hauptzweck eines aufgezählten Datentyps besteht darin, klar zu machen, welche Daten Sie haben Programm wird manipulieren. Ein Aufzählungstyp ist eigentlich nur eine Abkürzung, um Konstanten sequentielle Werte zuzuweisen. Angesichts dieser Erklärungen ist der Dienstag eine Typkonstante TWeekDays.

Mit Delphi können wir mit den Elementen in einem Aufzählungstyp unter Verwendung eines Index arbeiten, der aus der Reihenfolge stammt, in der sie aufgelistet wurden. Im vorherigen Beispiel Montag in der TWeekDays Typdeklaration hat den Index 0, Dienstag hat den Index 1 und so weiter. Mit den zuvor in der Tabelle aufgeführten Funktionen können Sie beispielsweise Succ (Freitag) verwenden, um zum Samstag zu "gehen".

Jetzt können wir etwas ausprobieren wie:

zum Irgendwann: = Montag zu Sonntag tunwenn SomeDay = Dienstag dann
ShowMessage ('Dienstag ist es!');

Die Delphi Visual Component Library verwendet an vielen Stellen Aufzählungstypen. Beispielsweise ist die Position eines Formulars wie folgt definiert:

TPosition = (poDesigned, poDefault, poDefaultPosOnly, poDefaultSizeOnly, poScreenCenter);

Wir verwenden Position (über den Objektinspektor), um die Größe und Platzierung des zu ermitteln oder festzulegen bilden.

Unterbereichstypen

Einfach ausgedrückt repräsentiert ein Unterbereichstyp eine Teilmenge der Werte in einem anderen Ordinaltyp. Im Allgemeinen können wir jeden Unterbereich definieren, indem wir mit einem beliebigen Ordinaltyp (einschließlich eines zuvor definierten Aufzählungstyps) beginnen und einen doppelten Punkt verwenden:

Art TWorkDays = Montag.. Freitag;

Hier enthält TWorkDays die Werte Montag, Dienstag, Mittwoch, Donnerstag und Freitag.

Das ist alles - jetzt zähle auf!

instagram story viewer