Bonjour,
Je suis encore nul en codage et en traitement des tableaux, pouvez-vous valider ces deux observations :
1 $T[1]= 3.14 DrawText(#$T[1]#, BarIndex , … ne fonctionne pas
a= $T[1] DrawText(#a#, BarIndex … fonctionne et affiche 3.14
2 Pourquoi cette boucle ne fonctionne pas:
FOR i= 0 TO 5
x= x + $T[i]
NEXT
x= $T[1] + $T[2] + $T[3] … fonctionne
Une boucle WHILE ne marche pas non plus.
Merci d’avance.
Bonjour. Je confirme tes deux observations et je t’explique la raison.
1. Utilisation de DRAWTEXT avec des tableaux:
Tu ne peux pas utiliser directement $T[1] dans DRAWTEXT, car cette instruction attend une valeur scalaire et ne sait pas interpréter une référence de tableau.
C’est pourquoi ton exemple :
a = $T[1]
DRAWTEXT(#a#, BarIndex, High)
fonctionne, tandis que :
DRAWTEXT(#$T[1]#, BarIndex, High)
ne fonctionne pas.
La solution est toujours d’assigner la valeur du tableau à une variable avant de l’afficher.
2. Utilisation de boucles avec des tableaux.
La boucle FOR fonctionne dans ProBuilder, mais il faut tenir compte de deux choses:
* Initialiser la variable accumulatrice (x = 0 au début).
* S’assurer que les éléments du tableau $T[i] existent et ont une valeur assignée.
Un exemple correct serait :
// Initialisation
x = 0
$T[0] = 0
$T[1] = 1
$T[2] = 2
$T[3] = 3
$T[4] = 4
$T[5] = 5
// Somme de tous les éléments
FOR i = 0 TO 5 DO
x = x + $T[i]
NEXT
return x
Grand merci Ivan et Roberto (mon post d’hier) pour vos retours très rapides.