PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Indirection sur les constantes
Indirection sur les constantes
Débuté par Cyril, 25 mai 2020 19:45 - 3 réponses
Membre enregistré
44 messages
Popularité : +1 (1 vote)
Posté le 25 mai 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
Membre enregistré
87 messages
Popularité : +3 (3 votes)
Posté le 25 mai 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
Membre enregistré
309 messages
Popularité : +31 (37 votes)
Posté le 26 mai 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.
Membre enregistré
44 messages
Popularité : +1 (1 vote)
Posté le 26 mai 2020 - 15:10
Bonjour,

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

Problème clos.

Merci