Jeden z Jazyk Delphi rysy, ktoré sa nenachádzajú v iných moderných jazykoch, sú pojmy množín.
Delphityp sady je zbierka rovnakých hodnôt radový typ.
Súbor je definovaný pomocou sada Kľúčové slovo:
Typy súprav sú obvykle definované podrozsahmi.
Vo vyššie uvedenom príklade je TMagicNumber vlastným typom podrozsahu, ktorý umožňuje premenným typu TMagicNumber prijímať hodnoty od 1 do 34. Jednoducho povedané, typ podrozsahu predstavuje podskupinu hodnôt v inom poradí.
Možné hodnoty typu sú všetky podmnožiny základného typu, vrátane prázdnej súpravy.
Obmedzením množín je, že môžu pojať až 255 prvkov.
Vo vyššie uvedenom príklade je typ súboru TMagicSet sada prvkov TMagicNumber - celé čísla od 1 do 34.
Vyhlásenie TMagicSet = sada TMagicNumber sa rovná nasledujúcemu vyhláseniu: TMagicSet = sada 1..34.
Premenné typu sady
Vo vyššie uvedenom príklade sú premenné emptyMagicSet, oneMagicSet a anotherMagicSet sú sady TMagicNumber.
na priradiť hodnotu pre premennú typu množiny použite hranaté zátvorky a zoznam všetkých prvkov množiny. Ako v:
Poznámka 1: Každá premenná typu množiny môže obsahovať prázdnu množinu označenú [].
Poznámka 2: Poradie prvkov v množine nemá žiadny význam ani nemá zmysel, aby bol prvok (hodnota) zahrnutý do množiny dvakrát.
Kľúčové slovo IN
Testovať, či prvok je v cene v množine (premennej) použite IN Kľúčové slovo:
Nastavte operátorov
Rovnakým spôsobom, ako môžete spočítať dve čísla, môžete mať množinu, ktorá je súčtom dvoch množín. So súbormi má vaša udalosť viac operátorov:
- + vráti spojenie dvoch sád.
- - vráti rozdiel dvoch sád.
- * vráti priesečník dvoch sád.
- = návrat true, ak sú dve sady rovnaké - majú rovnaký prvok.
- <= vráti true, ak je prvá sada podmnožinou druhej sady.
- > = vráti true, ak je prvý súbor nadradeným súborom druhého súboru.
- <> vráti true, ak dve sady nie sú totožné.
- IN vráti true, ak je prvok zahrnutý v množine.
Tu je príklad:
Bude vykonaná procedúra ShowMessage? Ak áno, čo sa zobrazí?
Tu je implementácia funkcie DisplayElements:
Pomôcka: áno. Zobrazené: „18 | 24 |“.
Celé čísla, znaky, booleovské čísla
Pri vytváraní typov množín samozrejme nie ste obmedzení na celé čísla. Delphi poradové typy zahŕňajú znakové a booleovské hodnoty.
Ak chcete zabrániť používateľom zadávať alfa kľúče, pridajte tento riadok do OnKeyPress editačného ovládacieho prvku:
Sady s enumeráciami
Bežne používaný scenár v Delphi kóde je kombinovať vymenované typy aj typy množín.
Tu je príklad:
Otázka: zobrazí sa správa? Odpoveď: nie :(
Nastavuje vlastnosti kontroly Delphi
Ak potrebujete na písmo použité v ovládacích prvkoch TEdit použiť „tučné písmo“, použite buď inšpektor objektov alebo nasledujúci kód:
Vlastnosť Štýl písma je vlastnosť sady typov! Takto je to definované:
Takže vymenovaný typ TFontStyle sa používa ako základný typ pre typ súboru TFontStyles. Vlastnosť Style triedy TFont je typu TFontStyles - teda vlastnosť set type.
Ďalší príklad obsahuje výsledok funkcie MessageDlg. Funkcia MessageDlg sa používa na vyvolanie okna so správami a získanie odpovede používateľa. Jedným z parametrov funkcie je parameter Buttons typu TMsgDlgButtons.
TMsgDlgButtons je definovaný ako množina (mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbIgnore, mbAll, mbNoToAll, mbYesToAll, mbHelp).
Ak zobrazujete správu používateľovi obsahujúcu tlačidlá Áno, OK a Zrušiť a ak chcete kliknúť na tlačidlá Áno alebo Ok, chcete vykonať nejaký kód, môžete použiť nasledujúci kód:
Záverečné slovo: množiny sú skvelé. Sady sa môžu javiť ako mätúce pre Začiatočník Delphi, ale akonáhle začnete používať premenné typu množiny, zistíte, že poskytujú oveľa viac, ako to znelo na začiatku.