setovi su u redu, nizovi su sjajni.
Pretpostavimo da u našoj programskoj zajednici želimo stvoriti trodimenzionalne nizove za 50 članova. Prvo polje je za imena, drugo za e-poštu, a treće za broj učitavanja (komponenti ili aplikacija) u našu zajednicu.
Svaki niz (popis) imao bi odgovarajuće indekse i obilje koda za održavanje sva tri popisa paralelno. Naravno, mogli bismo pokušati s jednim trodimenzionalnim nizom, ali što je s njegovim tipom? Potreban nam je niz za imena i e-mailove, ali cijeli broj za broj učitavanja.
Način rada s takvom strukturom podataka je korištenje Delfi struktura zapisa.
TMember = Snimi...
Na primjer, sljedeća deklaracija stvara vrstu zapisa zvanu TMember, onu koju bismo mogli upotrijebiti u našem slučaju.
U osnovi, a struktura podataka zapisa može miješati bilo koju od ugrađenih vrsta kompanije Delphi uključujući sve vrste koje ste stvorili. Vrste zapisa definiraju fiksne zbirke predmeta različitih vrsta. Svaki predmet, ili polje, je poput varijable, koja se sastoji od imena i vrste.
Vrsta TMember sadrži tri polja: vrijednost niza koja se zove Ime (za držanje imena člana), vrijednost vrste niza koji se zove e-pošta (za jedan e-mail) i cijeli broj (kardinal) pod nazivom Posts (da zadrži broj podnesaka u naše zajednica).
Jednom kada smo postavili vrstu zapisa, možemo proglasiti varijablu tipa TMember. TMember je sada jednako dobar tip varijable za bilo koje varijable Delphi”s ugrađenim vrstama kao što su String ili Integer. Napomena: izjava TMember vrste ne dodjeljuje memoriju za polja Ime, e-pošta i Postovi;
Za stvarno stvaranje instancije zapisa TMember moramo deklarirati varijablu tipa TMember kao u sljedećem kodu:
Sada, kad imamo zapis, koristimo točku za izoliranje polja DelphiGuide.
Napomena: gornji dio koda može se prepisati korištenjem sključna riječ.
Sada možemo kopirati vrijednosti polja DelphiGuide u AMember.
Zabilježite opseg i vidljivost
Vrsta zapisa koja je deklarirana u deklaraciji obrasca (odjeljak za provedbu), funkcije ili postupka ima opseg ograničen na blok u kojem je deklariran. Ako je zapis deklariran u odjeljku sučelja jedinice on ima opseg koji uključuje sve ostale jedinice ili programe koji koriste jedinicu u kojoj se deklaracija događa.
Niz zapisa
Budući da TMember djeluje kao i bilo koji drugi objektni tip Pascal, možemo proglasiti niz varijabli zapisa:
Napomena: Evo kako to učiniti deklarirati i inicijalizirati stalan niz zapisa u Delfima.
Zapise kao polja za snimanje
Budući da je vrsta zapisa zakonita kao i svaka druga vrsta Delphija, možemo imati polje zapisa koji je i sam zapis. Na primjer, mogli bismo stvoriti ExpandedMember da bi pratio što član zajedno s podacima o članu.
Ispunjavanje svih informacija potrebnih za jedan zapis sada je nekako teže. Za pristup polja TExpandedMember potrebno je više razdoblja (točkica).
Snimite s "nepoznatim" poljima
Vrsta zapisa može imati i varijantni dio (ne treba ga brkati s varijablom Variant type). Različiti zapisi se koriste, primjerice, kada želimo stvoriti vrstu zapisa za koji imaju polja različite vrste podataka, ali znamo da nikada nećemo trebati koristiti sva polja u jednom zapisu primjer. Da biste saznali više o dijelovima koji se nalaze u varijanti u Records, pogledajte datoteke pomoći Delphi. Upotreba varijantnog tipa zapisa nije sigurna za tip i nije preporučena programska praksa, posebno za početnike.
Međutim, inačice zapisa mogu biti vrlo korisne ako se ikada nađete u situaciji da ih koristite.