Један од Делпхи језик особине које се не налазе у другим савременим језицима је појам скупова.
Делфисет типе је збир вредности истог редног типа.
Скуп је дефинисан помоћу сет од кључна реч:
Врсте скупова обично се дефинишу поткатегоријама.
У горњем примјеру, ТМагицНумбер је прилагођени подстепени тип који омогућава варијаблама типа ТМагицНумбер да примају вриједности од 1 до 34. Једноставно речено, субранге тип представља подскуп вриједности у другом редном типу.
Могуће вредности типа скупа су све подскупови основног типа, укључујући празан скуп.
Ограничење скупова је да могу да садрже до 255 елемената.
У горњем примеру, тип скупа ТМагицСет је скуп елемената ТМагицНумбер - целих бројева од 1 до 34.
Декларација ТМагицСет = скуп ТМагицНумбер је једнака следећој декларацији: ТМагицСет = скуп од 1..34.
Подесите променљиве типа
У горњем примеру, променљиве емптиМагицСет, онеМагицСет и анотхерМагицСет су сетови ТМагицНумбер.
До доделите вредност на променљиву врсту скупа, користите квадратне заграде и наведите све елементе скупа. Као у:
Напомена 1: свака променљива типа скупа може да држи празан скуп, означен са [].
Напомена 2: редослијед елемената у скупу нема значења, нити је смислено да се елемент (вриједност) два пута укључи у скуп.
Кључна реч ИН
Да тестирам да ли је елемент је укључен у скупу (променљива) користите ИН кључна реч:
Подесите операторе
На исти начин на који можете збројити два броја, можете имати скуп који је збир два скупа. Уз сетове ваш догађај има више оператера:
- + враћа сједињење два скупа.
- - враћа разлику два скупа.
- * враћа пресек два скупа.
- = ретурн труе ако су два скупа једнака - имају исти елемент.
- <= враћа тачно ако је први скуп подскуп другог скупа.
- > = враћа труе ако је први скуп суперсет другог скупа.
- <> враћа се труе ако су два скупа неидентична.
- ИН враћа труе ако је елемент укључен у скуп.
Ево примера:
Да ли ће се поступак СховМессаге извршити? Ако је тако, шта ће се приказати?
Ево примене функције ДисплаиЕлементс:
Савет: да. Приказано: "18 | 24 |".
Цели бројеви, ликови, боолеи
Наравно, приликом креирања скупова врста нисте ограничени на целе вредности. Делпхи редни типови укључују знаковне и бооле вредности.
Да бисте спречили кориснике да уносе алфа кључеве, додајте ову линију у поље ОнКеиПресс контроле уређивања:
Комбинације са енумерацијама
Уобичајени сценариј у коду Делпхи је да се мешају набројани типови и типови скупова.
Ево примера:
Питање: да ли ће се порука приказати? Одговор: не :(
Подешава у Делпхи Цонтрол Пропертиес
Када морате да примените "подебљано" на фонт који се користи у ТЕдит контролама, користите или Објецт Инспецтор или следећи код:
Својство Фонт'с Стиле је својство скупа! Ево како је дефинисано:
Дакле, набројани тип ТФонтСтиле користи се као основни тип за постављени тип ТФонтСтилес. Својство Стиле класе ТФонт је типа ТФонтСтилес - дакле својство скупа типа.
Други пример укључује резултат функције МессагеДлг. МессагеДлг функција користи се за постављање оквира за поруке и добијање одговора корисника. Један од параметара функције је параметар Буттонс типа ТМсгДлгБуттонс.
ТМсгДлгБуттонс је дефинисан као скуп (мбИес, мбНо, мбОК, мбЦанцел, мбАборт, мбРетри, мбИгноре, мбАлл, мбНоТоАлл, мбИесТоАлл, мбХелп).
Ако кориснику прикажете поруку која садржи тастере Да, ОК и Откажи и желите да извршите неки код ако су кликнути тастери Да или У реду, можете да користите следећи код:
Завршна реч: сетови су сјајни. Комплети могу изгледати збуњујуће за Делпхи почетник, али чим почнете да користите променљиве заданог типа открит ћете да пружају много више него што је звучало у почетку.