[R] Un numéro à la place d'un label

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

[R] Un numéro à la place d'un label

#1

Message par aulus »

Bonjour,

Voici un code banal qui m'amène une curieuse chose :

Code : Tout sélectionner

GUICtrlCreateLabel("Jour" , 270, 200, 30, 20)
GUICtrlCreateLabel("Mois" , 340, 200, 30, 20)
GUICtrlCreateLabel("Année" , 410, 200, 40, 20)
Ces labels appartiennent à un onglet.
Lorsque j'ouvre l'onglet pour la 1ère fois, à la place du label "Mois" s'affiche le nombre 74.
Les deux autres labels s'affichent correctement.

Aux ouvertures suivantes de l'onglet, le mot "Mois" s'affiche correctement.

A votre avis, que peut être ce nombre 74 ? L'ID du contrôle ?

Je vous remercie de vos lumières.
Modifié en dernier par aulus le lun. 08 juil. 2013 10:18, modifié 1 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Un numéro à la place d'un label

#2

Message par Tlem »

Sans le code complet, il est difficile de vous répondre.
Ceci dit, si le label ce trouve être créé après 70 autres contrôles, alors oui, le nombre 74 pourrait être son ID.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [..] Un numéro à la place d'un label

#3

Message par aulus »

Merci Tlem pour votre réponse.

Mon code approchant les 10 000 lignes, je ne vois pas quelles lignes conduisent à ce phénomène étrange, et par conséquent lesquelles rapporter ici.

Après extinction du PC, puis rallumage, le 74 s'est déplacé sur le premier label (Jour) à l'ouverture de l'onglet.
En inversant tour à tour l'ordre des déclarations des labels, le 74 tombe toujours sur le premier label.

Si j'ajoute un label-bidon en tête, c'est lui qui récupère le 74 :

Code : Tout sélectionner

GUICtrlCreateLabel("" , 460, 200, 30, 20)
GUICtrlCreateLabel("Jour" , 270, 200, 30, 20)
GUICtrlCreateLabel("Mois" , 340, 200, 30, 20)
GUICtrlCreateLabel("Année" , 410,200, 40, 20))
En variant les manipulations (clics sur divers boutons avant d'ouvrir l'onglet), le 74 peut s'afficher aussi bien dans un input qu'à la place de n'importe quel label de l'onglet ou d'un autre onglet !

Quelqu'un saurait-il quelle erreur de code entraînerait le remplacement d'un libellé de label par son Id ?
Et pourquoi un Id et toujours le même (dans mon cas c'est toujours le 74ème contrôle appelé) peut s'incruster sans y être invité ?
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Un numéro à la place d'un label

#4

Message par mikell »

Comme disait Thierry pas facile de répondre sans voir le code...
ça peut évoquer un GuiCtrlSetData , et/ou un GuiCtrlRead effectué sur une listview, treeview ou tab et qui retourne un id d'item
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [..] Un numéro à la place d'un label

#5

Message par aulus »

Merci Mikell. Je vais plancher là-dessus...
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [..] Un numéro à la place d'un label

#6

Message par aulus »

Bonjour,

Après 2 jours de lutte acharnée, je suis parvenu à débusquer la ligne de code qui m'a tourmenté nuit et jour (enfin... presque !)

J'avais confondu un handle de contrôle ($hNombre) avec une variable ($nombre). J'avais codé GUICtrlSetData($nombre, "..."), au lieu de coder GUICtrlSetData($hNombre, "..."). Toutefois, je ne sais pas trop pourquoi c'est le Label "Jour" qui en a subi les conséquences...

Aux possibilités d'erreurs pouvant entraîner le problème posé, suggérées par Mikell, j'ajouterai donc : confusion entre handle et variable !

Merci à tous deux.
Modifié en dernier par aulus le mar. 09 juil. 2013 09:10, modifié 1 fois.
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [R] Un numéro à la place d'un label

#7

Message par matwachich »

Pour éviter ce genre d'erreurs, je vous conseille d'adopter des conventions de nommage robustes, du genre (les miennes):

Code : Tout sélectionner

- variables: $[b][type_var][/b]NomVar
- contrôles ID: $[b][type_ctrl][/b]_NomControle
- contrôles Handle: $h[b][type_ctrl][/b]_NomControle
- var global: $__g_[b][type_var][/b]NomVar
- var global dans UDF: $__g[b][nom udf][/b]_[b][type var][/b]NomVar

[type_var]: i, s, a ... voir http://www.autoitscript.com/autoit3/udfs/UDF_Standards.htm
[type_ctrl]: I (input), E (edit), L (label) ...
[nom_udf]: en majuscule, AUGL, WINAPI ...
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [R] Un numéro à la place d'un label

#8

Message par aulus »

Merci matwachich pour toutes ces bonnes idées. A l'avenir j'en tirerai profit.
Répondre