Enregistrement d'une variable dans une autre page (dans un module)

MonsDeluC Messages postés 6 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 14 mars 2006 - 2 mars 2006 à 01:14
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 - 3 mars 2006 à 00:36
Bonjour à vous, je suis actuelelment sur la conception d'un
touché/coulé, je suis Newbie en VB, donc cela reste galère pour moi...

Je recherche à trouver le moyen d'enregistrer une valeur dans un module. Je m'explique:

Il y a la grille du touché/coulé qui est derrière un enregistrement
dans un tableau, avec des coordonnées X et Y (donc A2 = x=1 et y=2)
quoi...

Chaque case est un boutton, dès qu'on clique dessu, je souhaiterai qu'il enregistre les valeurs de x et de y dans le module

enfin, apparament, ça serai comme ça...

Actuellement, j'arrive à lier le module au programme principa, mais
j'ai fait ça actuellement sur les bouttons (image en réalitée):



Private Sub TA4_Click(Index As Integer)

x = 4

y = 1

touche.Init

End Sub



touche.Init est mon module

Une fois dans le module, j'ai un "if x = 4 then" machin et tout qui est censé me donner un msgbox

Mais il ne me la donne pas, car les valeurs de x et y ne sont pas les mêmes dans le module...

Comment faire? merci de vos réponses...

MonsDeluC

8 réponses

cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 21
2 mars 2006 à 01:51
Bonsoir,
En résumé tu veux stocker dans une variable les coups joués.

dans ton module tu peux déclarer une structure qui va stocker les coordonnées x et y.
8<---------------------------------------------------------------------------
Private Type PlayedCoord
x As Integer
y As String
End Type



Public CoupsJoues() As PlayedCoord


Sub RefreshList()


On Error GoTo IniTab


ReDim Preserve CoupsJoues(UBound(CoupsJoues) + 1)


Exit Sub

IniTab:
ReDim CoupsJoues(0)
Exit Sub
End Sub
--------------------------------------------------------------------------->8

Dans tes boutons tu n'as plus qu'a enregistrer les coordonnées dans la variables CoupsJoues. Exemple ci dessous avec les boutons représentant A1 et A2
8<---------------------------------------------------------------------------
Private Sub a1_Click()

RefreshList

CoupsJoues(UBound(CoupsJoues)).y = "a"
CoupsJoues(UBound(CoupsJoues)).x = 1


End Sub


Private Sub a2_Click()


RefreshList

CoupsJoues(UBound(CoupsJoues)).y = "a"
CoupsJoues(UBound(CoupsJoues)).x = 2

End Sub
--------------------------------------------------------------------------->8

Voila
Sur ce....dodo
0
MonsDeluC Messages postés 6 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 14 mars 2006
2 mars 2006 à 23:14
Erreur dans la page (non dans le module) : "Erreur de compilation:

Variable ou procédure attendue, et non un module"



Ceci est mon code de mon boutton:

Private Sub TA1_Click(Index As Integer)

CoupsJoues(touche(CoupsJoues)).x = 1

CoupsJoues(touche(CoupsJoues)).y = 1

End Sub



et ceci est mon module:


Private Sub Init()

Dim vtabtest(5, 5) As Boolean




End Sub



Private Type PlayedCoord

x As Integer

y As Integer

End Type





Public CoupsJoues() As PlayedCoord



Sub RefreshList()



On Error GoTo IniTab



ReDim Preserve CoupsJoues(touche(CoupsJoues) + 1)



Exit Sub

IniTab:

ReDim CoupsJoues(0)

Exit Sub

End Sub



Où est mon erreur?
0
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 21
2 mars 2006 à 23:50
Dans ce que tu souhaites faire ta fonction Init oublis la !

Dans ton bouton pourquoi tu as changé UBound par touche ?
UBound te permet de récupérer la taille du tableau afin d'écrire à la derniere case.
CoupsJoues(UBound(CoupsJoues)).x = 1
CoupsJoues(touche(CoupsJoues)).x = 1

Dans tes boutons laisses ceci (bien sur change les valeur a et 1 suivant les coordonnées que représentent les boutons)
8<----------------------------------------------------------
RefreshList

CoupsJoues(UBound(CoupsJoues)).y = "a"
CoupsJoues(UBound(CoupsJoues)).x = 1
---------------------------------------------------------->8

Voici à quoi doit ressembler ton module
8<----------------------------------------------------------
'Structure typé pour les données de tes coordonnées
Private Type PlayedCoord
x As Integer
y As Integer
End Type

'Tableau stockant les coups joués
Public CoupsJoues() As PlayedCoord

'Fonction permettant de redimensionner ton tableau CoupsJoues afin de stocker le dernier coup joué
Sub RefreshList()

On Error GoTo IniTab

ReDim Preserve CoupsJoues(touche(CoupsJoues) + 1)

Exit Sub
IniTab:
ReDim CoupsJoues(0)
Exit Sub
End Sub
---------------------------------------------------------->8
0
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 21
2 mars 2006 à 23:52
remet y en string dans la structure PlayedCoord.
'y' correspond aux colonnes dans un touché/coulé (a/b/c/d/e...)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
MonsDeluC Messages postés 6 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 14 mars 2006
3 mars 2006 à 00:00
effectivement, je vais le remettre ne string...

Pour le tableau, son bu n'est pas de listes les coups joués, mais
d'indiquer si oui ou non il contient quelque chose, si la valeur = 1,
alors il y a un bateau (de 1X1 pour le moment) sinon, sa valeur = à 0

et je croyais que ton UBound était ne nom de ton module





Et il me met encor une erreur à la ligne:

CoupsJoues(UBound(CoupsJoues)).x = 1 "Type incompatible"

Il faut le déclarer non? et dans quel page si oui?



C'est supercon de poser ques questions aussi stupides, mais j'ai rayé mon CD de VB à la partie "Aide" donc je n'ai plus rien lol
0
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 21
3 mars 2006 à 00:24
On va reprendre depuis le début...
Tu as des boutons qui représentent les cases où l'ont placent nos bateaux.
D'où ma question comment tu indiques la position de tes bateaux ?
On a besoin de savoir cette précision pour savoir si oui ou non il y a un bout de bateau à tel ou tel case.
0
MonsDeluC Messages postés 6 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 14 mars 2006
3 mars 2006 à 00:27
ce ne sont pas des "bouttons" proprement dit, mais des "images" (cases vides pour le moment)

pour le moment, j'indique la position du bateau manuellement, donc le
jeu est toujours pareil, c'est juste à titre de test pour le moment...
sur "comment enregistrer dans le module" une fois ceci terminé, je le
ferai un peu plus... "normalement"

Est-ce ça te dérange le fait que ce soit en test?
0
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 21
3 mars 2006 à 00:36
Ok je sais on a pas le droit de faire sa sur ce forum mais contact moi en PV si tu veux pour que je te donne mon mail afin que tu m'envois ton test de projet.
Je reposterais par la suite la solution sur ce forum.
0
Rejoignez-nous