Difference between revisions of "Set/fr"
m (Fixed syntax highlighting) |
|||
Line 6: | Line 6: | ||
Par exemple, prenons l'énumération: | Par exemple, prenons l'énumération: | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
TSpeed = (spVerySlow,spSlow,spAVerage,spFast,spVeryFast); | TSpeed = (spVerySlow,spSlow,spAVerage,spFast,spVeryFast); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 12: | Line 12: | ||
Et cet ensemble: | Et cet ensemble: | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
TPossibleSpeeds = set of TSpeed | TPossibleSpeeds = set of TSpeed | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 18: | Line 18: | ||
TPossibleSpeeds peut être défini comme une constante entre crochets: | TPossibleSpeeds peut être défini comme une constante entre crochets: | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
const | const | ||
RatherSlow = [spVerySlow,spSlow]; | RatherSlow = [spVerySlow,spSlow]; | ||
Line 30: | Line 30: | ||
Habituellement, deux fonctions natives du compilateur sont employées pour manipuler un ensemble : '''Include(UnEnsemble,UneValeur)''' et '''Exclude(UnEnsemble,UneValeur)'''. | Habituellement, deux fonctions natives du compilateur sont employées pour manipuler un ensemble : '''Include(UnEnsemble,UneValeur)''' et '''Exclude(UnEnsemble,UneValeur)'''. | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
var | var | ||
SomeSpeeds = TPossibleSpeeds; | SomeSpeeds = TPossibleSpeeds; | ||
Line 42: | Line 42: | ||
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. | 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. | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
procedure TSomething.DoSomething(Sender: TFarObject); | procedure TSomething.DoSomething(Sender: TFarObject); | ||
var | var | ||
Line 55: | Line 55: | ||
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: | 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: | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
var | var | ||
CanBeSlow: Boolean; | CanBeSlow: Boolean; |
Latest revision as of 00:34, 27 February 2020
│
Deutsch (de) │
English (en) │
suomi (fi) │
français (fr) │
русский (ru) │
Introduction
Un ensemble (set) code plusieurs valeurs d'une énumération vers un type Ordinal.
Par exemple, prenons l'énumération:
TSpeed = (spVerySlow,spSlow,spAVerage,spFast,spVeryFast);
Et cet ensemble:
TPossibleSpeeds = set of TSpeed
TPossibleSpeeds peut être défini comme une constante entre crochets:
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).
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.
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:
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 |