PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Indirection sur les constantes
Indirection sur les constantes
Iniciado por cbernard, 25,may. 2020 19:45 - 3 respuestas
Miembro registrado
47 mensajes
Publicado el 25,mayo 2020 - 19:45
Bonsoir,

il semble impossible de faire des indirections sur les constantes.

Auriez-vous une idée pour rendre mon code dynamique ?

//GESTION DES RACCOURCI POUR LES BTN_CAMX : BTNCAM 1 --> F1, etc.......
SI Milieu(MoiMême..Nom,8)<>"X" ALORS

SELON Milieu(MoiMême..Nom,8)

CAS 1 :MoiMême..ToucheRaccourci = VK_F1
CAS 2 : MoiMême..ToucheRaccourci = VK_F2
CAS 3 : MoiMême..ToucheRaccourci = VK_F3

FIN

FIN


J'ai essayé cela mais pas possible a priori avec les constantes

//GESTION DES RACCOURCI POUR LES BTN_CAMX : BTNCAM 1 --> F1, etc.......
SI Milieu(MoiMême..Nom,8)<>"X" ALORS

i est un entier = Milieu(MoiMême..Nom,8)

MoiMême..ToucheRaccourci = {"VK_F"+i}


FIN
Miembro registrado
92 mensajes
Publicado el 25,mayo 2020 - 20:50
Bonjour
Les constantes et leurs valeurs sont dans le fichier KeyConst.wl.
Faites donc un tableau avec la valeur de ces constantes de telle sorte que Moimeme..ToucheRaccourci=TabValeurs[milieu(moimeme..nom,8)]. Donc TabValeurs[1] sera = à 0x70

--
Bon dev.

Patrick Lalemand
Des outils pour développeurs sur https://www.lapalys.ca
Miembro registrado
310 mensajes
Publicado el 26,mayo 2020 - 10:19
Bonjour,
Accéder à des constantes via des indirections est conceptuellement impossible. Le principe de la constante est d'indiquer au compilateur de remplacer une référence par une valeur au moment même de la compilation.
Pour faire simple : La constante n'existe pas au niveau de l'exécution, c'est un concept de compilation destiné à faciliter la lecture du code.

Charger les valeurs de constantes dans des variables pour y accéder via les indirections.

Bon dev.
Miembro registrado
47 mensajes
Publicado el 26,mayo 2020 - 15:10
Bonjour,

merci à tous les deux pour vos retours. L'astuce de Lapalys est ok.

Problème clos.

Merci