Uppsättningar är ok, matriser är bra.
Anta att vi vill skapa tre endimensionella matriser för 50 medlemmar i vårt programmeringsgemenskap. Den första matrisen är för namn, den andra för e-post och den tredje för antalet uppladdningar (komponenter eller applikationer) till vår community.
Varje matris (lista) skulle ha matchande index och massor av kod för att upprätthålla alla tre listorna parallellt. Naturligtvis skulle vi kunna prova med en tredimensionell matris, men vad sägs om dess typ? Vi behöver sträng för namn och e-post, men ett heltal för antalet överföringar.
Sättet att arbeta med en sådan datastruktur är att använda Delphis poststruktur.
Till exempel skapar följande deklaration en posttyp som heter TMember, den som vi kan använda i vårt fall.
I huvudsak, a inspelad datastruktur kan blanda vilken som helst av Delphis inbyggda typer inklusive alla typer du har skapat. Record typer definierar fasta samlingar av objekt av olika typer. Varje artikel, eller fält, är som en variabel, bestående av ett namn och en typ.
TMember-typen innehåller tre fält: ett strängvärde som heter Namn (för att hålla namnet på en medlem), ett värde för en strängtyp som heter e-post (för en e-post) och ett heltal (kardinal) som heter Posts (för att hålla numret av inlagor till vårt community).
När vi har satt upp posttypen kan vi förklara att en variabel är av typen TMember. TMember är nu lika bra variabeltyp för variabler som någon av Delphis inbyggda typer som sträng eller heltal. Obs: TMember-typdeklarationen fördelar inget minne för fälten Namn, e-post och inlägg;
För att faktiskt skapa en förekomst av TMember-posten måste vi förklara en variabel av typen TMember, som i följande kod:
När vi har en post använder vi en punkt för att isolera fälten i DelphiGuide.
Obs: ovanstående kod kan skrivas om med hjälp av med nyckelord.
Vi kan nu kopiera värdena på DelphiGuides fält till AMember.
Posttyp som deklareras i deklarationen av ett formulär (implementeringsavsnitt), funktion eller förfarande har ett räckvidd begränsat till det block i vilket det deklareras. Om posten deklareras i gränssnittsdelen av en enhet har den ett omfattning som inkluderar andra enheter eller program som använder enheten där deklarationen inträffar.
Eftersom TMember fungerar som alla andra Objekt Pascal-typer, kan vi förklara en rad rekordvariabler:
Obs! Så här förklarar och initierar du ett konstant antal poster i Delphi.