Delfi programski jezik je primer močno tipkanega jezika. To pomeni, da morajo biti vse spremenljivke neke vrste. Tip je v bistvu ime za vrsto podatkov. Ko razglasimo spremenljivko, moramo določiti njeno vrsto, ki določa nabor vrednosti, ki jih lahko spreminja spremenljivka, in operacije, ki jih lahko izvajamo na njej.
Veliko Delphijevih vgrajenih vrst podatkov, na primer Integer ali Vrvica, je mogoče izboljšati ali kombinirati za ustvarjanje novih vrst podatkov. V tem članku bomo videli, kako ustvariti vrstne podatke po meri v Delphi.
Navadni tipi
Opredelitvene značilnosti vrst vrst podatkov so: sestavljene morajo iz omejenega števila elementov in jih je treba na nek način urediti.
Najpogostejši primeri vrstnih vrst podatkov so vse vrste Integer ter Char in Boolov tip. Natančneje, Object Pascal ima 12 vnaprej določenih vrstnih vrst: Integer, Shortint, Smallint, Longint, Byte, Word, Cardinal, Boolean, ByteBool, WordBool, LongBool in Char. Obstajata še dva razreda uporabniško določenih vrstnih vrst: našteti tipi in podstranji.
V vseh vrstnih vrstah mora biti smiselno, da se premaknete nazaj ali naprej do naslednjega elementa. Na primer, prave vrste niso navadne, ker premikanje nazaj ali naprej nima smisla. Vprašanje "Kaj je naslednji pravi po 2,5?" je nesmiselno.
Ker ima po definiciji vsaka vrednost, razen prve, edinstvenega predhodnika in vsaka vrednost, razen zadnje, ima edinstvenega naslednika, je več vnaprej določenih funkcije se uporabljajo pri delu z zaporednimi vrstami:
Funkcija | Učinek |
Naročilo (X) | Poda indeks elementa |
Pred (X) | Gre za element, naveden pred X v tipu |
Succ (X) | Pojdi na element, naveden za X v tipu |
Dec (X; n) | Premakne n elemente nazaj (če je izpuščen n, se en element premakne nazaj) |
Inc (X; n) | Premakne n elementov naprej (če je izpuščen n, se en element premakne naprej) |
Nizka (X) | Vrne najnižjo vrednost v območju vrstnega reda X podatkov |
Visoka (X) | Vrne najvišjo vrednost v območju vrstnega reda X podatkov |
Na primer, High (bajt) vrne 255, ker je najvišja vrednost tipa Byte 255, Succ (2) pa 3, ker je 3 naslednik 2.
Opomba: Če poskušamo uporabiti Succ, ko bo zadnji element ustvaril delphi izjema teka če je preverjanje obsega vključeno.
Našteti tip Delphi
Najlažji način za ustvarjanje novega primera ordinalnega tipa je preprosto seznam seznamov elementov v nekem vrstnem redu. Vrednosti nimajo lastnega pomena, njihova navadnost pa sledi zaporedju, v katerem so identifikatorji navedeni. Z drugimi besedami, naštevanje je seznam vrednosti.
tip TWeekDays = (ponedeljek, torek, sreda, četrtek, petek, sobota, nedelja);
Ko določimo našteto vrsto podatkov, lahko spremenljivke označimo za to vrsto:
var SomeDay: TWeekDays;
Glavni namen naštete vrste podatkov je razjasniti, katere podatke imate program bo manipuliral. Našteti tip je res le kratkočasni način dodeljevanja zaporednih vrednosti konstantam. Glede na te izjave je torek stalnica TWeekDays.
Delphi nam omogoča delo z elementi v našteti vrsti z uporabo indeksa, ki prihaja iz vrstnega reda, v katerem so bili navedeni. V prejšnjem primeru je bil ponedeljek v TWeekDays deklaracija tipa ima indeks 0, torek indeks 1 in tako naprej. Funkcije, naštete v tabeli, nas na primer uporabijo Succ (petek) za "odhod v" soboto.
Zdaj lahko poskusimo nekaj takega:
za SomeDay: = ponedeljek do Nedelja storiče SomeDay = torek torej ShowMessage ('Torek je!');
Knjižnica vizualnih komponent Delphi na več mestih uporablja naštete vrste. Na primer, položaj obrazca je opredeljen na naslednji način:
TPosition = (poDesigned, poDefault, poDefaultPosOnly, poDefaultSizeOnly, poScreenCenter);
Za položaj ali nastavitev velikosti in namestitve okna uporabljamo položaj (prek inšpektorja objektov) oblika.
Vrste podvrsti
Preprosto povedano, podvrsto vrsta predstavlja podmnožico vrednosti v drugem vrstnem redu. Na splošno lahko katero koli podvrsto določimo tako, da začnemo s katerim koli vrstnim redom (vključno s predhodno definiranim oštevilčenim tipom) in uporabimo dvojno piko:
tip TWorkDays = ponedeljek.. Petek;
Tukaj TWorkDays vključuje vrednosti ponedeljek, torek, sreda, četrtek in petek.
To je vse - zdaj naštejte!