GetCursorPos_(@point.POINT) mangeur de variable ???

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

GetCursorPos_(@point.POINT) mangeur de variable ???

Message par Kwai chang caine »

Bonjour à tous

Cela fait deux fois qu'il m'arrive un truc de ouf 8O

J'ai fait un programme contenant une trentaine de variables globales.
Et a partir d'un certain nombre, je ne sais pas exactement lequel, la premiere disparait 8O 8O

C'est a dire que lorsque l'on appelle le panneau des variables F11, la case a droite n'inscrit meme pas les 2 guillemets meme si c'est une variable string.

Si je supprime cette variable et que je la renomme, et evidement qu'elle est toujours la premiere de la liste, c'est pareil.
Si je la supprime, alors c'est la deuxieme qui deviens la premiere (of course) et donc a les meme symptomes 8O

Pas moyen de lui mettre une valeur, elle ne veut rien retenir.

Alors je me suis apperçu que mes variables globales commençait toute par les memes lettres exemple :

RepAttri
Repsysteme
RepJournal
RepOrdre
etc .....

J'ai donc inversé en les appelant :

AttriRep
SystemeRep
JournalRep
OrdreRep
etc ...

Et la miracle ça marche........ 8O

Avez vous déja eu le meme cas ???
Aurais-je trouvé le deuxieme bug de ma courte carriere de purebasicien ???
Ou bien ai-je encore fait une boulette ???

J'aimerais bien connaitre votre avis sur cette affaire ténebreuse qui s'est produite sur 2 prg differents et qui m'inquiete assez.

Merci
Bonne journée
Dernière modification par Kwai chang caine le mar. 06/mars/2007 15:09, modifié 1 fois.
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

Je ne sais pas, pour moi tout fonctionne parfaitement

Peux tu tester ce programme en debug, puis le stopper et demander la liste de variables, chez moi tout est ok !

Code : Tout sélectionner

Global var0.s ="100", var1.s="200", var2.s, var3.s, var4.s, var5.s, var6.s, var7.s, var8.s, var9.s
Global var10.s, var11.s, var12.s, var13.s, var14.s, var15.s, var16.s, var17.s, var18.s, var19.s
Global var20.s, var21.s, var22.s, var23.s, var24.s, var25.s, var26.s, var27.s, var28.s, var29.s
Global var30.s, var31.s, var32.s, var33.s, var34.s, var35.s, var36.s, var37.s, var38.s, var39.s
Global var40.s, var41.s, var42.s, var43.s, var44.s, var45.s, var46.s, var47.s, var48.s, var49.s
Global var50.s, var51.s, var52.s, var53.s, var54.s, var55.s, var56.s, var57.s, var58.s, var59.s
Global var60, var61, var62, var63, var64, var65, var66, var67, var68, var69
Global var70, var71, var72, var73, var74, var75, var76, var77, var78, var79
Global var80, var81, var82, var83, var84, var85, var86, var87, var88, var89
Global var90=100, var91=200, var92, var93, var94, var95, var96, var97, var98, var99


Debug var90
Debug var91
Debug var0
Debug var1
For n=1 To 100000
  Delay(100)
  Debug n
Next
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Je te remercie de ta réponse et ceci en plus, le jour du grand repos.
Tu as raison ton code marche aussi chez moi.

Alors je suis retourné sur le miens qui fait moulte page et j'ai viré une a une les procedures, et toujours le phénomene 8O

Il me reste plus que 4 lignes

Code : Tout sélectionner

Global RepAller.s= "Aller"
Global RepAppli.s= "Appli"
Global RepEssais.s= "Essais"
GetCursorPos_(@point.POINT) 
;Debug RepAller
;Debug RepAppli
;Debug RepEssais

Repeat  
 Evenement = WaitWindowEvent () 
Until Evenement = #PB_Event_CloseWindow
Alors :

Le retour en debug marche dans tous les cas, c'est à dire que lorsque l'on fait debug "La variable" la valeur remonte dans cet exemple.

Par contre F11 et on s'apperçois que la variable "Aller" n'apparait pas dans le tableau 8O
Si on supprime "global Repaller" c'est la variable Repappli qui disparait 8O
Et au tour de la variable RepEssais si on supprime ou "commentarise" RepAller 8O

Si on supprime la ligne GetCursorPos_(@point.POINT)
Alors la tout remarche 8O 8O
Aurais-oublié de declarer quelque chose pour cette API pour la variale "Point" car j'ai bien l'impression que c'est cette API qui fou le b....

Lorsque je me suis apperçu de ça, j'avais la variable RepAppli qui etait vide dans mon long code, donc je suis allé voir sa valeur dans le tableau et c'est la que j'ai découvert cette merveille.

Je ne saurais pas jurer, si il y avait obligatoirement une repercution sur les valeurs variables car a force de chercher, j'ai changer toutes les variables et le phenomene c'est arrété.
Mais il me semble bien que le code plantait car je n'arrivais pas à imposer une valeur a ce foutu "REpAppli", qui etait le 1er dans la liste des "Rep"
Ou alors il fallait mettre une variable bidon commençant par "RepAaaa" pour qu'il prenne en compte la seconde.

Car en fait c'est la premiere de la liste alphabetique qui disparait.
C'est pas banal ça, hein ????

Que pense tu de cette démo ????

Encore merci de ton aide BROSSDEN
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

J'ai le même Pb que toi sur cet exemple!
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Bonjour Nico

D'apres ta réponse, j'en déduit que l'on pourrait presque dire que j'ai trouvé mon 2e bug de PureBasic ???? :roll:

Je rassure tout le monde, je ne suis pas un chasseur de bug, cela ne me rejouis pas spécialement.

Si j'insiste, c'est juste que je voudrais savoir si :

1/ Cela viens de moi (C'est pas dur, j'suis tellement nul :oops: ) et qu'il faut que je me corrige (C'est l'avantage d'etre nul, c'est que l'on ne peux que progresser, donc la situation ne peux que s'améliorer :lol: ).

2/ Ou bien, que c'est une erreur de "notre createur" pour lequel j'ai une immense admiration sans faille (Je le répeterais jamais assez). 8), et donc de ce fait, ce n'est pas la peine que je m'acharne, l'erreur sera corrigée dans une prochaine version.

Bon, donc apparement d'apres toi, je n'ai pas "mal utilisé" l'API.

Merci de ton interet
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

@ BROSSDEN

En rajoutant la "ligne qui tue" :lol: , à ton code, ça merde pareil ....

Code : Tout sélectionner

Global var0.s ="100", var1.s="200", var2.s, var3.s, var4.s, var5.s, var6.s, var7.s, var8.s, var9.s 
Global var10.s, var11.s, var12.s, var13.s, var14.s, var15.s, var16.s, var17.s, var18.s, var19.s 
Global var20.s, var21.s, var22.s, var23.s, var24.s, var25.s, var26.s, var27.s, var28.s, var29.s 
Global var30.s, var31.s, var32.s, var33.s, var34.s, var35.s, var36.s, var37.s, var38.s, var39.s 
Global var40.s, var41.s, var42.s, var43.s, var44.s, var45.s, var46.s, var47.s, var48.s, var49.s 
Global var50.s, var51.s, var52.s, var53.s, var54.s, var55.s, var56.s, var57.s, var58.s, var59.s 
Global var60, var61, var62, var63, var64, var65, var66, var67, var68, var69 
Global var70, var71, var72, var73, var74, var75, var76, var77, var78, var79 
Global var80, var81, var82, var83, var84, var85, var86, var87, var88, var89 
Global var90=100, var91=200, var92, var93, var94, var95, var96, var97, var98, var99 


Debug var90 
Debug var91 
Debug var0 
Debug var1 
GetCursorPos_(@point.POINT)
For n=1 To 100000 
  Delay(100) 
  Debug n 
Next 
Quand à moi, je viens d'essayer sur mon code complet et il suffit de retirer cette ligne d'API pour que le phénomene cesse.......... 8O

J'ai donc quatre questions qui me viennent à l'esprit :

1/ Pensez vous, que, ormis le fait que la variable n'apparaisse pas dans le tableau, cela est une quelconque incidence sur le fonctionnement des variables ??

2/ Savez vous pourquoi ce phénome se produit ???

3/ Connaitriez vous d'autres instructions ou autres qui pourraient produire une erreur dans les variables.

4/ Et enfin, existe t'il un tableau officiel ou presque, qui ressence, les bugs en attente de correction (reconnus par presque tous le monde) afin que l'on évite de se casser la tete sur un probleme qui en fait n'est pas de notre faute.
Un peu comme le HOAXBUSTER.COM de l'HOAX qui m'évite bien souvent de passer pour une burne, dans ce monde de la désinformation que peut etre parfois internet. :wink:
Je me casse deja bien assez la tete pour les nombreux bugs que je créé moi :lol:

Si quelqu'un de ce forum peut m'éclairer sur une ou plusieures de ces questions, je vous remercie de vos reponses
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Alors personne n'a une petite idée pourquoi cette ligne GetCursorPos_(@point.POINT) fait foirer le lecteur de variable ??? 8O
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

Je pense que c'est tout simplement un debug du debuger justement , mais est ce que c'est aussi important que cela, sachant que le programme lui concerve la valeur de la variable ???
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Non, si ce n'est que l'inscription de la valeur de la variable.
Ce n'est pas que c'est important, c'est embetant et pas specialement normal.
Et j'aurais surtout voulu savoir si quelqu'un avait une idée pourquoi cette instruction causait ce probleme.

Si je me rend compte que cela touche la valeur, je reposterais, car j'ai des doutes mais pas de certitude sur le fait que la valeur ai été touché, car il me semble (mais encore une fois je ne suis pas sur) que j'ai découvert ce probleme à la suite d'une variable qui ne voulais pas donner sa valeur.

Esperons que ce n'est que le panneau qui n'affiche pas la valeur.

Merci de ta réponse et bonne soirée
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Répondre