Il est possible de déclarer des énumérations avec des valeurs personnalisées dans Delphi 5 comme ceci ?:énumérations à Delphes avec la coutume des valeurs
type
MyEnum = (meVal1 = 1, meVal2 = 3); // compiler error
Merci!
Il est possible de déclarer des énumérations avec des valeurs personnalisées dans Delphi 5 comme ceci ?:énumérations à Delphes avec la coutume des valeurs
type
MyEnum = (meVal1 = 1, meVal2 = 3); // compiler error
Merci!
Ceci est légal selon ce article. Je rappelle que dans les premières versions de Delphi, les valeurs fournies n'étaient pas supportées.
Il peut être utile de fournir l'erreur de compilation que vous avez reçue. Aussi, quelle version de Delphi utilisez-vous?
Si vous avez une ancienne version de Delphi (< = D5 IIRC), vous ne pouvez pas le faire. Peut-être que vous pouvez remplacer l'énumération par des constantes? Quelque chose comme
const
meVal1 = 1;
meVal2 = 3;
type
TMyEnum = Byte; // or Integer or ... - depends on your needs.
Malheureusement, le compilateur ne peut pas faire autant de contrôle d'erreur pour vous avec cela comme avec un type ENUM.
Comme une extension assez laide à la réponse par Ulrich, vous pouvez faire quelque chose comme ce qui suit:
type
TMyEnum = (meVal1, meVal2);
const
MY_ENUM_VALS: array[TMyENum] of integer = (1, 3);
et les accès comme
if (aVal = MY_ENUM_VALS[meVal2]) then...
Pas assez, je vous accorde, mais au moins De cette façon, vous obtenez un peu plus d'erreurs de compilation pour les versions antérieures de Delphi.
Dans Delphis anciens, vous pouvez faire
type
MyEnum = (meUnused1, meVal1, meUnused2, meVal2);
Cela devrait en effet être légal, voir aussi: http://docwiki.embarcadero.com/RADStudio/2010/en/Simple_Types#Enumerated_Types_with_Explicitly_Assigned_Ordinality – Otherside
merci, je suis en utilisant D5. Maintenant, je vois ce qu'il ne supporte pas cette fonctionnalité ... wah ... – SomeOne