Sign in Join
Wiki copytemporary

Revision 2 of 2, by Trev on 2-26-2020. The page as it is now.

Set/fr

Introduction

Un ensemble (set) code plusieurs valeurs d'une énumération vers un type Ordinal.

Par exemple, prenons l'énumération:

pascal
TSpeed = (spVerySlow,spSlow,spAVerage,spFast,spVeryFast);

Et cet ensemble:

pascal
TPossibleSpeeds = set of TSpeed

TPossibleSpeeds peut être défini comme une constante entre crochets:

pascal
const
        RatherSlow = [spVerySlow,spSlow];
        RatherFast = [spFast,spVeryFast];

RatherSlow et RatherFast sont quelques ensembles de TSpeed.

Manipulation des sets

Habituellement, deux fonctions natives du compilateur sont employées pour manipuler un ensemble : Include(UnEnsemble,UneValeur) et Exclude(UnEnsemble,UneValeur).

pascal
var
        SomeSpeeds = TPossibleSpeeds;
      begin
        SomeSpeeds := [];
        Include(SomeSpeeds,spVerySlow);
        Include(SomeSpeeds,spVeryFast);
      end;

Les ensembles ne peuvent être directement manipulés s'ils sont des propriétés publiées d'une classe. Vous devez normalement alors faire une copie locale, la modifier et passer cette valeur au setter.

pascal
procedure TSomething.DoSomething(Sender: TFarObject);
      var
        LocalCopy = TPossibleSpeeds;
      begin
        LocalCopy := Sender.PossibleSpeeds; // getter to local
        Include(LocalCopy,spVerySlow);
        Sender.PossibleSpeeds := LocalCopy; // local to setter.
      end;

Le mot-clé in est aussi utilisé pour vérifier si une valeur est dans un ensemble. Généralement, c'est de la forme:

pascal
var
        CanBeSlow: Boolean;
      const
        SomeSpeeds = [Low(TSpeed)..High(TSpeed)];
      begin
        CanBeSlow := (spVerySlow in SomeSpeeds) or (spSlow in SomeSpeeds);
      end;

Les ensembles supportent aussi des opération ensemblistes sous la forme d'opérateurs décrits dans Set operators

Types de données

Types de données simples | Boolean | Byte |Cardinal | Char | Currency | Extended | Int64 | Integer | Longint | Pointer | Real | Shortint | Smallint | Word
Types de données complexes | Array | Class | Record | Set | String | ShortString


From the Free Pascal wiki, page "Set/fr", as the Internet Archive kept it on 2025-03-23, last changed on 2020-02-27. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.