Hola Chichero.
1. Sé bienvenido a este foro.
2. El pasado fin de semana tuve la fortuna de ver
Hermano, la película de Marcel Rasquin. Que gran trabajo, me gustó mucho.
3. Cuando publiques código, hay que darle formato para que no pierda el sangrado, es decir, los espacios en blanco que van al comienzo de cada línea. Esto es muy sencillo con el botón "Resaltar sintaxis Delphi".
4. El error que mencionas te aparece porque:
0 Or 1 Or 3 Or 15 Or 17 Or 28 = 31
y
6 Or 9 Or 13 Or 18 or 19 or 20 = 31 también.
El operador
Or aplicado a números enteros se utiliza para "mezclar" los bits de tales enteros y no tiene relación alguna con la instrucción
Case.
Lo que debes hacer es separar los valores usando comas:
0, 1, 3, 15, 17, 28
El error "Duplicate case label" aparece cuando se repite alguno de los valores, así que debes cuidar que eso no suceda. Como lo tenías se repetía el valor 31 (aunque no lo escribieras literalmente).
Espero haber podido ayudarte.
Saludos.
Al González.
