Delphi programozási nyelv egy erősen gépelt nyelv példája. Ez azt jelenti, hogy minden változónak valamilyen típusúnak kell lennie. A típus lényegében egyfajta adat neve. Amikor deklarálunk egy változót, meg kell határoznunk annak típusát, amely meghatározza az értékhalmazt, amelyre a változó képes tartani, és a rajta végrehajtható műveleteket.
A Delphi számos beépített adattípusa, például az Integer vagy a Húr, finomítható vagy kombinálható új adattípusok létrehozásához. Ebben a cikkben megismerjük, hogyan hozhatunk létre egyéni rendi adattípusokat a Delphi.
Rendes típusok
A rendi adattípusok meghatározó jellemzői a következők: véges számú elemből kell állniuk, és valamilyen módon meg kell őket rendezni.
Az ordinális adattípusok leggyakoribb példái az egész számtípusok, valamint Char és logikai típus. Pontosabban: az Object Pascal 12 előre definiált rendtípust tartalmaz: egész szám, Shortint, Smallint, Longint, Byte, Word, bíboros, logikai, ByteBool, WordBool, LongBool és Char. A felhasználó által definiált rendtípusoknak két másik osztálya is létezik: felsorolt típusok és alulrendezett típusok.
Bármely rendi típusnál ésszerűnek kell lennie arra, hogy előre-vissza lépjen a következõ elemre. Például a valós típusok nem szokásosak, mert a hátra vagy előre mozgatni nincs értelme. A kérdés: "Mi a következő valós a 2.5 után?" értelmetlen.
Mivel definíció szerint minden értéknek az első kivételével egyedi elődje van, és az utolsó érték kivételével minden értéknek egyedi utódja van, több előre meghatározott funkciók szokásos típusokkal történő munka esetén:
Funkció | Hatás |
Ord (X) | Az elem indexét adja meg |
Pred (X) | Ugrás az elem előtt felsorolt elemhez a típusban |
Succ (X) | Ugrás az elem után felsorolt elemhez a típusban |
December (X; n) | N elemet mozgat vissza (ha n hiányzik, akkor 1 elemet mozgat vissza) |
Inc (X; n) | N elemet mozgat előre (ha n hiányzik, az 1 elemet előre mozgatja) |
Alacsony (X) | Visszaadja a X soros adattípus tartományának legalacsonyabb értékét |
Magas (X) | Visszaadja a X soros adattípus tartományának legmagasabb értékét |
Például a Magas (Byte) 255-et ad vissza, mert a Byte-típus legnagyobb értéke 255, a Succ (2) pedig 3-at ad, mert 3 a 2 utódja.
Megjegyzés: Ha megpróbáljuk használni a Succ-t, amikor az utolsó elemnél a Delphi generál egy futásidejű kivétel ha a tartomány ellenőrzése be van kapcsolva.
Delphi felsorolt típus
Az ordinális típus új példájának elkészítésének legegyszerűbb módja az, ha elemből álló csoportot sorol fel valamilyen sorrendben. Az értékeknek nincs benne rejlő jelentésük, és rendszerezésük követi az azonosítók felsorolásának sorrendjét. Más szavakkal, a felsorolás az értékek listája.
típus TWeekDays = (hétfő, kedd, szerda, csütörtök, péntek, szombat, vasárnap);
Miután meghatároztuk a felsorolt adattípust, kijelenthetjük, hogy a változók ilyen típusúak:
var SomeDay: TWeekDays;
A felsorolt adattípusok elsődleges célja annak tisztázása, hogy milyen adatai vannak program manipulálni fog. A felsorolt típus valójában csak egy rövid módja a szekvenciális értékek konstansokhoz való hozzárendelésére. Ezen nyilatkozatok alapján a kedd állandó állandó TWeekDays.
A Delphi lehetővé teszi számunkra, hogy felsorolt elemekkel dolgozzunk együtt egy index segítségével, amely abból a sorrendből származik, amelyben azokat felsorolták. Az előző példában hétfőn TWeekDays a típusnyilatkozat indexe 0, kedden az index 1, és így tovább. Az előző táblázatban felsorolt funkciók segítségével például a Succ-t (péntek) használhatjuk szombatra.
Most kipróbálhatunk valamit, például:
mert SomeDay: = Hétfő nak nek vasárnap csinálha SomeDay = kedd azután ShowMessage ('kedden van!');
A Delphi Visual Component Library sok helyen felsorolt típusokat használ. Például az űrlap helyzetét a következőképpen kell meghatározni:
TPpozíció = (poDesigned, poDefault, poDefaultPosOnly, poDefaultSizeOnly, poScreenCenter);
A Pozíciót (az Object Inspectoron keresztül) használjuk, hogy megkapjuk vagy beállítsuk a forma.
Aláírt típusok
Egyszerűen fogalmazva: egy alsó típusú típus képviseli az értékek egy részhalmazát egy másik rendi típusban. Általánosságban bármilyen alfajt definiálhatunk bármilyen ordinális típussal (beleértve egy korábban meghatározott felsorolt típust) és kettős ponttal:
típus TWorkDays = Hétfő.. Péntek;
A TWorkDays itt tartalmazza a hétfő, kedd, szerda, csütörtök és péntek értékeket.
Ez minden - megy már felsorolni!