Delphi SET -tyypin ymmärtäminen

Yksi Delfin kieli ominaisuuksia, joita ei löydy muista nykykielistä, on joukkojen käsite.

Delphinasetettu tyyppi on kokoelma samoja arvoja ordinaalinen tyyppi.

Sarja määritetään painikkeella joukko avainsana:

Joukkotyypit määritetään yleensä alialueilla.

Yllä olevassa esimerkissä TMagicNumber on mukautettu alityyppi, joka sallii TMagicNumber-tyypin muuttujien vastaanottaa arvoja välillä 1 - 34. Yksinkertaisesti sanottuna, alialuetyyppi edustaa osajoukkoa arvoista toisessa ordinaarityypissä.

Asetustyypin mahdolliset arvot ovat kaikki perustyypin osajoukot, mukaan lukien tyhjä joukko.

Joukkojen rajoitus on, että ne voivat pitää enintään 255 elementtiä.

Yllä olevassa esimerkissä TMagicSet-joukkotyyppi on joukko TMagicNumber-elementtejä - kokonaislukuja 1 - 34.

Ilmoitus TMagicSet = joukko TMagicNumber on yhtä suuri kuin seuraava ilmoitus: TMagicSet = joukko 1..34.

Aseta tyyppimuuttujat

Yllä olevassa esimerkissä muuttujat emptyMagicSet, oneMagicSet ja anotherMagicSet ovat TMagicNumber-sarjoja.

jotta määritä arvo Aseta tyyppimuuttujaksi hakasulkeilla ja lue kaikki joukon elementit. Kuten:

instagram viewer

Huomautus 1: Jokainen joukkotyypin muuttuja voi pitää tyhjän sarjan, jota merkitään [].

Huomautus 2: Joukon elementtien järjestyksellä ei ole merkitystä, eikä ole merkityksellistä, että elementti (arvo) sisällytetään kahdesti sarjaan.

IN avainsana

Testaa, onko elementti sisältyy Käytä sarjaa (muuttuja) SISÄÄN avainsana:

Aseta operaattorit

Samoin kuin voit summata kaksi numeroa, sinulla voi olla joukko, joka on kahden joukon summa. Sarjojen avulla tapahtumassa on enemmän operaattoreita:

  • + palauttaa kahden sarjan liitoksen.
  • - palauttaa kahden sarjan eron.
  • * palauttaa kahden sarjan leikkauspisteen.
  • = palata tosi, jos kaksi sarjaa ovat yhtä suuret - omaa sama elementti.
  • <= palaa true, jos ensimmäinen joukko on toisen joukon osajoukko.
  • > = palauttaa true, jos ensimmäinen joukko on toisen sarjan yläjoukko.
  • <> palauttaa arvon true, jos kaksi sarjaa eivät ole identtisiä.
  • IN palauttaa arvon true, jos elementti sisältyy joukkoon.

Tässä on esimerkki:

Suoritetaanko ShowMessage -menettely? Jos on, mitä näytetään?

Tässä on DisplayElements-toiminnon toteutus:

Vihje: kyllä. Näytetään: "18 | 24 |".

Kokonaislukut, merkit, loogiset luvut

Tietenkin, kun luot asetettuja tyyppejä, et ole rajoittunut kokonaislukuarvoihin. Delphi-ordinaalityypit sisältävät merkki- ja boolean-arvot.

Lisää tämä rivi kohtaan, jotta käyttäjät eivät voi kirjoittaa alfa-näppäimiä OnKeyPress muokkausohjaimen:

Asettaa luettelot

Delphi-koodissa yleisesti käytetty skenaario on sekoittaa sekä luetellut tyypit että asettaa tyypit.

Tässä on esimerkki:

Kysymys: näytetäänkö viesti? Vastaus: ei :(

Asettaa Delphi-hallintaominaisuuksiin

Kun joudut käyttämään "lihavoitua" TEdit-ohjaimissa käytettyyn kirjasimeen, käytät joko Object Inspectoria tai seuraavaa koodia:

Fontin tyyli -ominaisuus on tietyn tyyppinen ominaisuus! Se on määritelty seuraavasti:

Joten, lueteltua tyyppiä TFontStyle käytetään perustyyppinä asetustyypille TFontStyles. TFont-luokan Tyyli-ominaisuus on tyyppiä TFontStyles - siksi asetetun tyyppinen ominaisuus.

Toinen esimerkki sisältää MessageDlg-toiminnon tuloksen. MessageDlg-toimintoa käytetään viestiruudun avaamiseen ja käyttäjän vastauksen saamiseen. Yksi toiminnon parametreista on Painikkeet-tyyppi TMsgDlgButtons.

TMsgDlgButtons määritellään joukona (mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbIgnore, mbAll, mbNoToAll, mbYesToAll, mbHelp).

Jos näet käyttäjälle viestin, joka sisältää Kyllä, OK ja Peruuta painikkeet ja haluat suorittaa koodin, jos joko Kyllä tai Ok painikkeita napsautettiin, voit käyttää seuraavaa koodia:

Loppusana: sarjat ovat hienoja. Sarjat saattavat vaikuttaa hämmentävältä a Delphi-aloittelija, mutta heti, kun aloitat set-tyyppisten muuttujien käytön, huomaat, että ne tarjoavat paljon enemmän kuin se kuulosti alussa.