Eliot7500
Messages postés18Date d'inscriptiondimanche 22 décembre 2013StatutMembreDernière intervention 4 janvier 2014
-
30 déc. 2013 à 19:28
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018
-
30 déc. 2013 à 22:35
Bonjour,
J'ai créer un jeu de blackjack à partir d'un formulaire. Lorsque j'ouvre le formulaire j'ai une textbox qui m'indique le nombre de crédit que je dispose que j'ai indiqué dans
Sub Bouton3_Clic() Dim balance As Integer balance = 500 UserForm1.TextBox2.Value = balance UserForm1.Show End Sub
Après chaque partie le nombre de crédit varie en fonction du résultat. Cependant, je suis confronté à un problème. En effet, à la fin de ma première partie la valeur de ma textbox repasse à zéro alors qu'elle devrait être soit à 490 ou 510.
Mais après cela fonctionne bien, en effet ma textbox prend soit la valeur -10 ou 10 après la fin de la deuxième partie. Il s'agit d'un problème de recouvrement de valeurs entre deux sessions. Je ne sais pas comment faire pour que le formulaire retienne ma première valeur 500.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212 30 déc. 2013 à 19:35
Bonjour,
Il te faut enregistrer en dur les valeurs à conserver entre deux sessions.
Tu peux par exemple (et entre autres) les enregistrer dans un fichier texte (ouvert en écriture), puis les y lire et les recharger lors de l'ouverture d'une nouvelle session.
Il te faut pour cela apprendre (ton aide VB6) à utiliser l'instruction Open (for input pour lire, for output pour écrire dans un fichier texte .txt). Les rubriques concernées de ton aide VB6 sont à ce sujet claires et accompagnées d'exemples simples.
L'utilisation du moteur de recherche de ce forum te conduira par ailleurs à une véritable "foultitude" de discussions et codes sur ce thème récurrent.
Reviens après ces lectures (avec ton code d'essai) si encore en difficulté.
Eliot7500
Messages postés18Date d'inscriptiondimanche 22 décembre 2013StatutMembreDernière intervention 4 janvier 2014 30 déc. 2013 à 19:42
Mais pourquoi je devrais enregistrer la première valeur alors qu'à la 2 ème partie le formulaire se souvient de la valeur précédente. J'ai l'impression qu'il y a un moyen plus simple?
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212 30 déc. 2013 à 20:57
Ben ...
Il te suffit alors de déclarer en public, dans un module .bas, la variable qui doit garder cette valeur (et/ou ses variations) !
Elle gardera toujours alors la dernière variation de valeur.
Et à chaque "nouvelle partie" tu en réinitialise la valeur comme tu l'entends !
Vous n’avez pas trouvé la réponse que vous recherchez ?
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212 30 déc. 2013 à 22:35
Il serait par ailleurs assez temps que tu commences à découviri d'autres "petites" choses :
- tant qu'un userform n'est pas déchargé (par Unload), les contrôles et variables qui lui sont attachés ne perdent ni leurs propriétés, ni leurs valeurs.
- il n'est pas nécessaire de décharger un userform, si on veut le garder (ainsi que ses composants) "vivant. La méthode Hide ne décharge pas un userform.
- l'instruction Unload, par contre, fait perdre ces mêmes valeurs et propriétés
- l'évènement Initialize ne se déclenche pas à nouveau par un Show après un Hide. Il se déclenche par contre après un déchargement (Unload)
Cela ne t'ouvre pas de "perspectives" ??? Non ???
Tu n'es là que face à une gestion réfléchie de tout cela ! Et riern d'autre que cela !