Rinkiniai yra gerai, masyvai yra puikūs.
Tarkime, kad mes norime sukurti tris vieno matmens masyvus 50 narių mūsų programavimo bendruomenėje. Pirmasis masyvas skirtas vardams, antrasis - el. Laiškams, o trečiasis - įkėlimų (komponentų ar programų) į mūsų bendruomenę skaičius.
Kiekvienas masyvas (sąrašas) turėtų atitikimo indeksus ir daug kodo, kad visus tris sąrašus palaikytų lygiagrečiai. Žinoma, mes galime išbandyti vieną trimatį masyvą, bet kaip su jo tipu? Mums reikia vardų ir el. Pašto adresų eilutės, bet sveikas skaičius įkėlimų skaičiui.
Kaip dirbti su tokia duomenų struktūra yra naudoti „Delphi“ įrašo struktūra.
TMember = Įrašai...
Pvz., Šioje deklaracijoje sukuriamas įrašo tipas, vadinamas TMember, kurį galėtume naudoti mūsų atveju.
Iš esmės, a įrašo duomenų struktūra gali maišyti bet kurį iš „Delphi“ įmontuotų tipų įskaitant visus jūsų sukurtus tipus. Įrašų tipai apibūdina fiksuotas skirtingų tipų elementų kolekcijas. Kiekvienas elementas arba laukas, yra kaip kintamasis, susidedantis iš vardo ir tipo.
„TMember“ tipą sudaro trys laukai: eilutės reikšmė, vadinama „Name“ (nario vardui laikyti), eilutės tipo vertė vadinamas el. paštu (vienam el. laiškui), o sveikasis skaičius (kardinolas), vadinamas „Žinutės“ (norint išlaikyti pateiktų pranešimų skaičių mūsų bendruomenė).
Nustatę įrašo tipą, galime paskelbti kintamąjį TMember tipo. TMember dabar yra toks pat geras kintamųjų tipas kaip ir bet kuris iš Delphi 'įmontuoti tipai, tokie kaip stygos ar sveikasis skaičius. Pastaba: TMember tipo deklaracija neskiria atminties laukams Vardas, El. Paštas ir Žinutės;
Norėdami iš tikrųjų sukurti TMember įrašo egzempliorių, turime deklaruoti TMember tipo kintamąjį, kaip nurodyta šiame kode:
Dabar, kai turime įrašą, „DelphiGuide“ laukų išskyrimui naudojame tašką.
Pastaba: aukščiau pateiktą kodo dalį galima perrašyti naudojant suraktinis žodis.
Dabar „DelphiGuide“ laukų vertes galime nukopijuoti į AMember.
Įrašų apimtis ir matomumas
Įrašo tipo, deklaruojamo formos (įgyvendinimo skiltyje), funkcijos ar procedūros deklaracijoje, taikymo sritis yra tik ta blokas, kuriame jis deklaruojamas. Jei įrašas deklaruojamas vieneto sąsajos skyriuje, jis turi apimtį, apimančią visus kitus blokus ar programas, kurios naudoja vienetą ten, kur yra deklaracija.
Įrašų masyvas
Kadangi TMember veikia kaip bet kuris kitas Object Pascal tipas, galime paskelbti įrašų kintamųjų masyvą:
Pastaba: Štai kaip tai padaryti paskelbti ir inicijuoti nuolatinį įrašų rinkinį Delfuose.
Įrašai kaip įrašų laukai
Kadangi įrašo tipas yra teisėtas, kaip ir bet kuris kitas „Delphi“ tipas, įrašo laukas gali būti pats įrašas. Pvz., Galėtume sukurti „ExpandedMember“, kad galėtume sekti, ką narys pateikia kartu su informacija apie narį.
Dabar kažkaip sunkiau užpildyti visą informaciją, reikalingą vienam įrašui. Norint patekti į „TExpandedMember“ laukus, reikia daugiau taškų (taškų).
Įrašai su „nežinomais“ laukais
Įrašo tipas gali turėti variantinę dalį (nepainioti su „Variant“ tipo kintamuoju). Įrašų variantai naudojami, pavyzdžiui, kai norime sukurti įrašo tipą, kuriame būtų laukai įvairių rūšių duomenų, tačiau mes žinome, kad mums niekada nereikės naudoti visų laukų viename įraše instancija. Norėdami sužinoti daugiau apie įvairias įrašų dalis, pažvelkite į „Delphi“ pagalbos failus. Įrašo tipo variantų naudojimas nėra saugu ir nėra rekomenduojamas programavimo būdas, ypač pradedantiesiems.
Tačiau variantų įrašai gali būti gana naudingi, jei kada nors atsidursite tokioje situacijoje, kad jais pasinaudotumėte.