IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++/CLI Discussion :

pb evenement prolonger


Sujet :

C++/CLI

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 99
    Points : 76
    Points
    76
    Par défaut pb evenement prolonger
    Bonjour à Tous,

    J'utilise Visual C++2005 express en Winform.
    J'ai un probleme sur l'action d'un bouton, si je laisse le doigt appuyé.
    DEROULEMENT :
    Quant je click sur un button, je déclenche un dé et un 1er joueur joue.
    2émé click pour le second joueur.
    3 émé click pour le troisieme joueur .... et xxxx joueur.
    voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    // JOUER AU JEU DE L'OIE.
    	private: System::Void butJouer_Click(System::Object^ sender, System::EventArgs^ e) {
    // /*
    			switch (zStatus) {
    				case 1:
    					LANCEDES(); // joue.
    					for(int i =0; i < 2; i++) {
    							cLabelMessage[i]->ForeColor = MesVariables::gCouleur[6] ;
    					}
    					break;
    				case 2:
    					pbDes->Visible = false ; // Vu ou Passe.
    					for(int i =0; i < 2; i++) {
    							cLabelMessage[i]->BackColor = MesVariables::gCouleur[0] ;
    							cLabelMessage[i]->ForeColor = MesVariables::gCouleur[7] ;
    					}
    					break;
    				case 3:
    					break;
    				case 4:
    					break;
    				case 5:
    					FORM_SECONDE_PARTIE_ACTIVATE() ;
    					return ;
    			}
    			AIGUILLAGE();
    // */
    	}
    jusque la tous va bien.
    Je peux jouer aussi avec la touche ENTREE du clavier, et encore celà fonctionne bien.
    Mon probleme, si je garde la touche ENTREE enfoncé, les joueurs défile sans arret et bien sur on ne suis plus le jeu.
    J'ai mis mon code comme dans la faq dans : voir code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    	private: System::Void butJouer_KeyUp(System::Object^  sender, System::Windows::Forms::KeyEventArgs^  e) {
    /*
    FAQ - Visual C++, WinForm.
    Suite à une action utilisateur sur le clavier, nous devons parfois effectuer un long traitement. 
    Et nous souhaiterions que les actions clavier ne soient pas enregistrées pendant ce traitement. 
    Cette suspension peut être implémentée de la façon suivante :
    */
    			//Exemple après l'appui de la touche "Enter"
    			if (e->KeyCode == Keys::Enter) {
    			//Arrêter la capture d'événements clavier sur le contrôle
    					this->butJouer->KeyUp -= gcnew KeyEventHandler(this, &Form1::butJouer_KeyUp);
    			//Traitements longs
    Mon code si dessus ICI.
    				//*************
    			//Reprendre la capture d'événements clavier sur le contrôle
    					this->butJouer->KeyUp += gcnew KeyEventHandler(this, &Form1::butJouer_KeyUp);
    			}
    	}
    La plus de probleme de répétition de la touche ENTREE, mais bien sur , je ne peux plus jouer avec un click souris.

    J'espére étre claire dans mon explication.
    Conclusion :
    Je cherche a jouer avec la souris et avec le clavier mais en évitant la répétition du clavier.

    Merci D'avance.

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    t'as qu'à mettre un boolean dans la fonction
    s'il est à vrai, tu peux jouer et tu le positionnes à faux
    s'il est faux, tu peux pas jouer
    et une fois que ton traitement est terminé, tu repasses le boolean à vrai
    j'ai pas trop compris pourquoi tu pouvais plus jouer avec la souris ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 99
    Points : 76
    Points
    76
    Par défaut pb evenement - rebond touche
    Bonjour,

    OK, problème résolu. J'utilisé un boolean mais de tres mauvaise façon. le boolean n'avait aucune utilité.. En cherchant un peu, c'est tres simple...
    Dans mon evenement click, ajout de 2 lignes avec zClav en boolean.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    private: System::Void butJouer_Click(System::Object^ sender, System::EventArgs^ e) {
     
    			if(zClav == true) { return ; }
    			zClav = true ;
     
    			switch (zStatus) {
    				case 1:
    Dans mon evenement KeyUp, seul le passage à false de la boolean est utile.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    private:System::Void butJouer_KeyUp(System::Object^  sender, System::Windows::Forms::KeyEventArgs^  e) {
    			zClav = false ;
    	}
    J'écrie ma solution car ça peut être utile à d'autre personne du forum.

    Merci encore à Nicolas.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB6] Interception des évènement Copier/Couper/Coller
    Par youtch dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 18/10/2002, 17h09
  2. [VB6] Evenement validate
    Par grosjej dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 05/09/2002, 15h46
  3. Evenement Change
    Par PierDIDI dans le forum Composants VCL
    Réponses: 3
    Dernier message: 28/08/2002, 10h08
  4. develloppement avec ORBit: service d'evenement
    Par belmontv dans le forum CORBA
    Réponses: 3
    Dernier message: 06/06/2002, 22h56
  5. Generation d'evenements a une date precise
    Par pascalzzz dans le forum MFC
    Réponses: 2
    Dernier message: 04/06/2002, 15h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo