KMIKZ
Messages postés21Date d'inscriptionmardi 12 octobre 2004StatutMembreDernière intervention26 avril 2008
-
11 déc. 2004 à 15:59
KMIKZ
Messages postés21Date d'inscriptionmardi 12 octobre 2004StatutMembreDernière intervention26 avril 2008
-
4 janv. 2005 à 10:06
Bonjour a tous,
je viens de débutter avec VB et je voudrais commencer par faire ceci :
" j'ai 4 shape et je voudrais un nombre aléatoire qui me sélectionne un shape au hasard parmis les 4 et lorsque je clic sur le bon je sois redirigé vers une autre fenêtre "
Ca c'est la théorie mais en pratique je ne vois pas comment faire.
Est-ce que quelqu'un pourrait m'aiguiller ou me donner un aperçu du code s'il vous plait.
Merci d'avance.
Bon week-end à tous.
KMIKZ.
A voir également:
"Php variables" "server api" "build date" "php version 4.4.4"
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 11 déc. 2004 à 16:40
Salut KMIKZ
- Pour associer ce chiffre à un de tes Shapes :
Créé un premier Shape et tu mets la propriété Index à 0, puis tu le recopies 3 fois pour en avoir 4 au total. Ils porteront les Index de 0 à 3.
Pour les utiliser : Shape(N°)
- Hasard : Seuls des chiffres peuvent être générés au hasard avec : Randomize dans ton Form_Load (une seule fois), puis Rnd() qui va générer un chiffre entre 0 et 1 (avec décimales).
Pour fabriquer un chiffre entre 0 et 3 (correspondant aux index de tes Shapes), il suffit de faire :
Dans un module, tu mets :
Public Chiffre As Integer
Au moment où tu veux générer ton nombre aléatoire, dans un Command1_Click par exemple), tu mets :
Chiffre = Int(Rnd() * 3)
Le 3 pour multiplier le chiffre du Rnd (entre 0 et 1) en un chiffre entre 0 et 3.
Le Int() est là pour tranformer le résultat en entier (virer les décimales)
- Ensuite, quand tu cliqueras sur un des Shapes, l'évènement Shape_Click se produira. Il te fournira le n° d'Index du Shape sur lequel tu as cliqué. Il te suffit de le comparer au chiffre aléatoire généré :
If Index = Chiffre Then AutreFenêtre.Show
Vala
Jack
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
KMIKZ
Messages postés21Date d'inscriptionmardi 12 octobre 2004StatutMembreDernière intervention26 avril 2008 21 déc. 2004 à 08:46
Merci à tous pour ces conseils
J'ai essayé de les mettre en oeuvre mais je n'y suis pas arrivé c'est vous dire si je débute VB !
J'ai un shape1 ( fois 4 avec des index de 0 à 3)
J'ai déclaré : Public Chiffre As Integer
J'ai un Command2_Click dans lequel j'ai mis : Chiffre = Int(Rnd() * 3)
J'ai mis If Index = chiffre Then Form2.Show dans le Form1_load
Je suppose que le problème vient de mon clic sur un des shape mais lorsque je double clic sur un shape l'editeur ne me permet pas de créer un shape1_clic !
Comme je ne suis pas expérimenté en VB je ne vois pas mes erreurs qui peuvent être évidentes.
Bonnes Vacances
KMIKZ
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200621 21 déc. 2004 à 20:25
Salut,
1 - Il n'y a pas d'évènement Click avec un Shape. Je pense que pour ce que j'ai compris tu veux faire, des Label feraient mieux l'affaire.
2 - "J'ai mis If Index = chiffre Then Form2.Show dans le Form1_load" ça ne peux pas fonctionner. met plutôt ça dans le Label1_Click(Index As Integer) de cette façon :
Private Sub Label1_Click(Index As Integer)
If Index = chiffre Then Form2.Show
End Sub
Ainsi, tu cliques sur command2 pour générer le chiffre puis sur un label, si chiffre correspond à l'index du label ta form2 s'affichera.
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200621 21 déc. 2004 à 20:35
Heu, j'insiste, pour avoir un nombre aléatoire de 0 à 3, c'est bien Chiffre = Int(Rnd() * 4) qu'il faut coder et pas Chiffre = Int(Rnd() * 3), sinon, tu n'auras jamais la valeur 3.
Petit moyen technique : pour obtenir des valeurs aléatoires de x à y, il faut coder Int(Rnd() * (y-x+1)) + x