L'une des fonctionnalités du langage Delphi que l'on ne trouve pas dans d'autres langages modernes est la notion d'ensembles.
Delphi définir le type est une collection de valeurs du même type ordinal.
Un ensemble est défini à l'aide du ensemble de mot-clé:
Les types de set sont généralement définis avec des sous-gammes.
Dans l'exemple ci-dessus, le TMagicNumber est un type de sous-gamme personnalisé permettant aux variables du type TMagicNumber de recevoir des valeurs de 1 à 34. Autrement dit, un type de sous-gamme représente un sous-ensemble des valeurs d'un autre type ordinal.
Les valeurs possibles du type d'ensemble sont tous les sous-ensembles du type de base, y compris l'ensemble vide.
Une limitation sur les ensembles est qu'ils peuvent contenir jusqu'à 255 éléments.
Dans l'exemple ci-dessus, le type d'ensemble TMagicSet est un ensemble d'éléments TMagicNumber - nombres entiers de 1 à 34.
La déclaration TMagicSet = ensemble de TMagicNumber est égal à la déclaration suivante: TMagicSet = ensemble de 1… 34.
Dans l'exemple ci-dessus, les variables emptyMagicSet, oneMagicSet et anotherMagicSet sont des ensembles de TMagicNumber.
À attribuer une valeur à une variable de type ensemble, utilisez les crochets et répertoriez tous les éléments de l'ensemble. Un péché:
Remarque 1: chaque variable de type d'ensemble peut contenir l'ensemble vide, désigné par [].
Remarque 2: l'ordre des éléments dans un ensemble n'a pas de sens, et il n'est pas significatif qu'un élément (valeur) soit inclus deux fois dans un ensemble.
Pour tester si un élément est inclus dans l'ensemble (variable) utilisez le DANS mot-clé:
De la même manière que vous pouvez additionner deux nombres, vous pouvez avoir un ensemble qui est la somme de deux ensembles. Avec les sets, votre événement a plus d'opérateurs: