A nyilvántartott adattípusok megértése és használata a Delphiben

szettek rendben vannak, tömbök Jók.

Tegyük fel, hogy három egydimenziós tömböt akarunk létrehozni 50 tag számára a programozó közösségünkben. Az első tömb a nevekre, a második az e-mailekre, a harmadik a közösségünkhöz feltöltött fájlok (összetevők vagy alkalmazások) számára vonatkozik.

Minden tömbnek (lista) megfelelő indexekkel és rengeteg kóddal kellene rendelkeznie, hogy mindhárom listát párhuzamosan tartsák fenn. Természetesen kipróbálhatunk egy háromdimenziós tömböt is, de mi lenne a típusával? Szövegre van szükség a nevekhez és az e-mailekhez, de egész szám a feltöltések számához.

Egy ilyen adatszerkezettel történő munkavégzés módja a Delphi-ek használata rekord szerkezete.

TMember = Rekord...

Például a következő nyilatkozat létrehoz egy TMember nevű rekordtípust, amelyet esetünkben használhatunk.

Lényegében a A rekord adatstruktúrája a Delphi beépített típusainak bármelyikét keverheti beleértve a létrehozott típusokat is. A rekordtípusok különféle elemek rögzített gyűjteményeit határozzák meg. Minden elem vagy terület, olyan, mint egy változó, névből és típusból áll.

instagram viewer

A TMember típus három mezőt tartalmaz: Név nevű karakterláncérték (a tag nevének megtartásához), egy karakterlánctípus értéke e-mailnek (egy e-mailhez), és egy egész számnak (bíborosnak) hívott üzenetnek (a beküldések számának megtartásához közösség).

Miután beállítottuk a rekordtípust, egy változót deklarálhatunk TMember típusúnak. A TMember most ugyanolyan jó változótípus, mint bármelyik változó Delphi'beépített típusai, például a String vagy az Integer. Megjegyzés: A TMember típusnyilatkozat nem oszt ki memóriát a Név, az e-mail és a Bejegyzések mezőkre;

A TMember rekord példányának valódi létrehozásához deklarálnunk kell egy TMember típusú változót, a következő kód szerint:

Ha van rekordunk, akkor egy pontot használunk a DelphiGuide mezőinek elkülönítésére.

Megjegyzés: A fenti kóddarab átírható a val velkulcsszó.

Most átmásolhatjuk a DelphiGuide mezőinek értékeit az AMemberbe.

Nyilvántartási kör és láthatóság

Az űrlap (végrehajtási szakasz), funkció vagy eljárás deklarációjában deklarált rekordtípus hatóköre korlátozódik annak a blokknak, amelyben azt deklarálják. Ha a rekordot egy egység interfész szakaszában deklarálják, akkor egy olyan hatókörrel rendelkezik, amely magában foglal minden olyan egységet vagy programot, amely az egységet használja, ahol a deklaráció megtörténik.

Rekordok tömege

Mivel a TMember ugyanúgy viselkedik, mint bármely más Object Pascal típus, deklarálhatunk egy rekordváltozók tömbjét:

Megjegyzés: Itt van, hogyan kell deklarál és inicializál egy állandó rekordot Delphiben.

Rekordok mezőként

Mivel a rekordtípus jogszerű, mint bármely más Delphi típus, akkor lehet, hogy egy rekord mezője maga a rekord. Például létrehozhatunk ExpandedMember-et, hogy nyomon követhessük, mit nyújt be a tag a tag adataival együtt.

Most már valahogy nehezebb kitölteni az összes rekordhoz szükséges információkat. Több periódus (pont) szükséges a TExpandedMember mezők eléréséhez.

Felvétel "Ismeretlen" mezőkkel

Egy rekordtípusnak lehet variáns része (nem szabad összetéveszteni a Variant típusú változóval). Változó rekordokat használunk például akkor, amikor olyan rekordtípust akarunk létrehozni, amely mezőkkel rendelkezik különféle adatok, de tudjuk, hogy soha nem kell az összes mezőt egyetlen rekordban használni példa. Ha többet szeretne tudni a Records variáns alkatrészeiről, nézze meg a Delphi súgófájljait. A változatos rekordtípus használata nem biztonságos, és nem ajánlott programozási gyakorlat, különösen a kezdők számára.

A változat-nyilvántartások azonban nagyon hasznosak lehetnek, ha valaha olyan helyzetben találja magát, hogy felhasználja őket.