[Resolu] Problème avec un buffer

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
deeph
Messages : 33
Inscription : lun. 20/juil./2009 11:04
Contact :

[Resolu] Problème avec un buffer

Message par deeph »

Bonjour, toujours dans le cadre de mon éditeur de carte, j'essaie de stocker des données dans un buffer puis de les lires ensuite, sauf que bizarrement ça me renvoi toujours "2"... J'ai essayé de changer le type de la variable "element" mais ça ne change rien (pas plus que d'utiliser PokeL() et PeekL()).

Code : Tout sélectionner

Protected element.l
event()\moves_buffer = AllocateMemory(#MAX_MOVES) ; #MAX_MOVES=100
element = 0
Repeat
  SetGadgetState(#ListViewGadget, element)
  Select GetGadgetText(#ListViewGadget)
    Case "Haut"
      PokeB(event()\moves_buffer, 1) ; 0
    Case "Gauche"
      PokeB(event()\moves_buffer, 4) ; 3
    Case "Droite"
      PokeB(event()\moves_buffer, 2) ; 1
    Case "Bas"
      PokeB(event()\moves_buffer, 3) ; 2
  EndSelect
  element+1
Until element = CountGadgetItems(#ListViewGadget)

element = PeekB(event()\moves_buffer)-1
While element+1
  Select element
    Case 0
      AddGadgetItem(#ListViewGadget, -1, "Haut")
    Case 3
      AddGadgetItem(#ListViewGadget, -1, "Gauche")
    Case 1
      AddGadgetItem(#ListViewGadget, -1, "Droite")
    Case 2
      AddGadgetItem(#ListViewGadget, -1, "Bas")
  EndSelect
  element = PeekB(event()\moves_buffer)-1
  Debug(Str(element))
Wend
Quelqu'un voit-il où est le problème ?
Dernière modification par deeph le dim. 15/nov./2009 14:40, modifié 1 fois.
f1roe
Messages : 34
Inscription : dim. 04/sept./2005 22:10
Localisation : Lyon 3ème

Re: Problème avec un buffer

Message par f1roe »

Il manque des éléments pour répondre a ta question...
Plus de code svp

Cordialement

Sébastien
deeph
Messages : 33
Inscription : lun. 20/juil./2009 11:04
Contact :

Re: Problème avec un buffer

Message par deeph »

Je vois pas trop ce qu'il manque... Enfaite le truc c'est que j'ajoute des éléments dans un ListViewGadget, et ensuite j'essaie de lire son contenu pour le transformer en 0 ("Haut"), 1 ("Droite"), 2 ("Bas") ou 3 ("Gauche").
Avatar de l’utilisateur
Le psychopathe
Messages : 764
Inscription : jeu. 03/mars/2005 19:23

Re: Problème avec un buffer

Message par Le psychopathe »

C'est tout à fait normal : tu écris une valeur à la même adresse mémoire dans ta boucle.

event()\moves_buffer à toujours la même adresse ! Il faut rajouter +1 à chaque boucle

Code : Tout sélectionner

element = 0
Repeat
  SetGadgetState(#ListViewGadget, element)
  Select GetGadgetText(#ListViewGadget)
    Case "Haut"
      PokeB(event()\moves_buffer + element, 1) ; 0
    Case "Gauche"
      PokeB(event()\moves_buffer + element, 4) ; 3
    Case "Droite"
      PokeB(event()\moves_buffer + element, 2) ; 1
    Case "Bas"
      PokeB(event()\moves_buffer + element, 3) ; 2
  EndSelect
  element+1
Until element = CountGadgetItems(#ListViewGadget)
deeph
Messages : 33
Inscription : lun. 20/juil./2009 11:04
Contact :

Re: Problème avec un buffer

Message par deeph »

Rah merci :D

J'étais persuadé que ça fonctionnais comme ReadByte() et WriteByte() !
Répondre