Grundlegendes zu und Verwenden von Datensatzdatentypen in Delphi

Sets Ist ok, Arrays sind großartig.

Angenommen, wir möchten drei eindimensionale Arrays für 50 Mitglieder in unserer Programmiergemeinschaft erstellen. Das erste Array ist für Namen, das zweite für E-Mails und das dritte für die Anzahl der Uploads (Komponenten oder Anwendungen) in unsere Community.

Jedes Array (Liste) würde übereinstimmende Indizes und viel Code haben, um alle drei Listen parallel zu verwalten. Natürlich könnten wir es mit einem dreidimensionalen Array versuchen, aber was ist mit seinem Typ? Wir benötigen eine Zeichenfolge für Namen und E-Mails, aber eine Ganzzahl für die Anzahl der Uploads.

Die Art und Weise, mit einer solchen Datenstruktur zu arbeiten, ist die Verwendung von Delphi Datensatzstruktur.

TMember = Rekord...

Mit der folgenden Deklaration wird beispielsweise ein Datensatztyp namens TMember erstellt, den wir in unserem Fall verwenden könnten.

Im Wesentlichen a Die Datensatzdatenstruktur kann alle in Delphi integrierten Typen mischen einschließlich aller von Ihnen erstellten Typen. Datensatztypen definieren feste Sammlungen von Elementen unterschiedlicher Typen. Jeder Artikel oder

instagram viewer
Feldist wie eine Variable, die aus einem Namen und einem Typ besteht.

Der TMember-Typ enthält drei Felder: einen Zeichenfolgenwert namens Name (um den Namen eines Mitglieds zu speichern), einen Wert eines Zeichenfolgentyps genannt eMail (für eine E-Mail) und eine Ganzzahl (Kardinal) namens Posts (um die Anzahl der Einsendungen an unsere zu speichern Gemeinschaft).

Sobald wir den Datensatztyp eingerichtet haben, können wir eine Variable vom Typ TMember deklarieren. TMember ist jetzt für Variablen genauso ein guter Variablentyp wie jeder andere Delphi 's integrierte Typen wie String oder Integer. Hinweis: In der TMember-Typdeklaration wird kein Speicher für die Felder Name, eMail und Posts zugewiesen.

Um tatsächlich eine Instanz des TMember-Datensatzes zu erstellen, müssen wir eine Variable vom Typ TMember deklarieren, wie im folgenden Code:

Wenn wir jetzt einen Datensatz haben, verwenden wir einen Punkt, um die Felder von DelphiGuide zu isolieren.

Hinweis: Der obige Code kann mit der Verwendung von neu geschrieben werden mitStichwort.

Wir können jetzt die Werte der DelphiGuide-Felder nach AMember kopieren.

Umfang und Sichtbarkeit aufzeichnen

Der in der Deklaration eines Formulars (Implementierungsabschnitts), einer Funktion oder einer Prozedur deklarierte Datensatztyp hat einen Bereich, der auf den Block beschränkt ist, in dem er deklariert ist. Wenn der Datensatz im Schnittstellenabschnitt einer Einheit deklariert ist, hat er einen Bereich, der alle anderen Einheiten oder Programme enthält, die die Einheit verwenden, in der die Deklaration erfolgt.

Eine Reihe von Datensätzen

Da sich TMember wie jeder andere Object Pascal-Typ verhält, können wir ein Array von Datensatzvariablen deklarieren:

Hinweis: So geht's Deklarieren und initialisieren Sie ein konstantes Array von Datensätzen in Delphi.

Datensätze als Datensatzfelder

Da ein Datensatztyp wie jeder andere Delphi-Typ legitim ist, kann ein Feld eines Datensatzes selbst ein Datensatz sein. Zum Beispiel könnten wir ExpandedMember erstellen, um zu verfolgen, was das Mitglied zusammen mit den Mitgliedsinformationen sendet.

Das Ausfüllen aller für einen einzelnen Datensatz erforderlichen Informationen ist jetzt etwas schwieriger. Für den Zugriff auf die Felder von TExpandedMember sind weitere Punkte (Punkte) erforderlich.

Mit "unbekannten" Feldern aufnehmen

Ein Datensatztyp kann einen Variantenteil haben (nicht zu verwechseln mit Variantentypvariable). Variantendatensätze werden beispielsweise verwendet, wenn ein Datensatztyp mit Feldern für erstellt werden soll verschiedene Arten von Daten, aber wir wissen, dass wir niemals alle Felder in einem einzigen Datensatz verwenden müssen Beispiel. Weitere Informationen zu Variantenteilen in Datensätzen finden Sie in den Hilfedateien von Delphi. Die Verwendung eines varianten Datensatztyps ist nicht typsicher und wird insbesondere für Anfänger nicht empfohlen.

Variantendatensätze können jedoch sehr nützlich sein, wenn Sie jemals in der Lage sind, sie zu verwenden.