Bonjour !
J'aurais besoin de traduire une expression booléenne en une valeur entière, pour ranger des boutons sur deux colonnes en fonction de leur numéro.
Mais le compilateur dans sa version actuelle (13.11.10) refuse cette écriture, et renvoie le message "Char expected". Pourtant, la fonction Ord() fonctionne aussi avec un type énuméré défini par l'utilisateur, comme on peut le voir dans l'exemple suivant. Enfin, ce qui est vraiment curieux, c'est le résultat qu'on obtient en remplaçant Ord(expression) par integer(expression).
Code : Sélectionner tout - Visualiser dans une fenêtre à part _x := 500 + 100 * Ord(index > 5)
Je sollicite humblement une correction de cette fonction pour la prochaine mise à jour.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 (* Essai de la fonction Ord(). FlashPascal 2 v13.11.10 *) program Ord; {$FRAME_WIDTH 550} {$FRAME_HEIGHT 400} {$FRAME_RATE 12} {$BACKGROUND $FFFFFF} uses Flash8; const m = 10; type tEnum = (a, b, c); var t: textField; begin t := textField.Create(nil, '', 0, m, m, stage.width - 2 * m, stage.height - 2 * m); t.text := IntToStr(Ord('0')) + #10 + // 48 IntToStr(Ord(c)) + #10 + // 2 //IntToStr(Ord(false)); // Char expected IntToStr(integer(false)) + #10 + // false IntToStr(integer(1 = 1)); // true end.
En attendant, y aurait-il une astuce pour faire la conversion d'une booléen en entier ?
Partager