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

Visual C++ Discussion :

Action sur button


Sujet :

Visual C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Electronicien
    Inscrit en
    Août 2008
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Electronicien
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2008
    Messages : 377
    Par défaut Action sur button
    comment faire une condition sur l'effet d'un button nommé Deconnexion

    if (Deconnexion->Enabled) serialPort1->Close;

    au mieux je souhaiterai fermer ma connexion serialPort1->Close; sur l'action d'un clic sur la croix de mon form principal.

    Merci

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Tu veux dire un événement ou une condition?
    Pour une condition, généralement on les fait sur des checkboxes plutôt que sur des boutons.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre très actif
    Homme Profil pro
    Electronicien
    Inscrit en
    Août 2008
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Electronicien
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2008
    Messages : 377
    Par défaut
    Bah en fait j'ai créé un bouton pour déconnecté le bus USB avant la fermeture du form par ce que quand je souhaitai fermer mon form alors qu'il était encore en train de récupère mes valeurs celui-ci frisait et ne ce fermait plus, je suis obliger de faire un alt contrôle sup pour arrêter l'application.

    Je pense qu'il faut donc que je ferme ma connections USB au moment ou je clic sur la croix du form principal, mais je n'y suis pas arriver

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Ah, je pense qu'il y a un risque qu'il y ait un problème de "verrou mortel" où chaque thread attend une réponse de l'autre...

    Pour les appels où il n'est pas essentiel d'attendre que le thread graphique ait fini de mettre à jour ses contrôles avant de continuer, tu peux remplaçer les Invoke() par des BeginInvoke() (mais pour ça, il va falloir modifier la fonction SetText() ou en faire une copie que tu modifies ensuite).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre très actif
    Homme Profil pro
    Electronicien
    Inscrit en
    Août 2008
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Electronicien
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2008
    Messages : 377
    Par défaut
    Merci j'esserai demain

  6. #6
    Membre très actif
    Homme Profil pro
    Electronicien
    Inscrit en
    Août 2008
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Electronicien
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2008
    Messages : 377
    Par défaut
    Bonjour,

    j'ai donc mis un BeginInvoke() dans ma fonction SetText() comme ça

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    		private: virtual void SetText(String^ text) sealed
     
    		{
     
    			if (this->Analog0->InvokeRequired)
     
    			{
     
    				SetTextCallback^ d = gcnew SetTextCallback(this,&VCCDC::Form1::SetText);
     
     
     
    				this->BeginInvoke(d, gcnew String(text));   
     
    			}
    			else
    			{
     
    				Analog0->Clear();
    				Analog0->AppendText(valeur1.ToString());
     
    				Analog1->Clear();
    				Analog1->AppendText(valeur2.ToString());
     
    				Analog2->Clear();
    				Analog2->AppendText(valeur3.ToString());
     
    				Analog3->Clear();
    				Analog3->AppendText(valeur4.ToString());
     
    				Analog4->Clear();
    				Analog4->AppendText(valeur5.ToString());
     
    				Analog5->Clear();
    				Analog5->AppendText(valeur6.ToString());
     
    				Analog6->Clear();
    				Analog6->AppendText(valeur7.ToString());
     
    				Analog7->Clear();
    				Analog7->AppendText(valeur8.ToString());
     
    				Analog8->Clear();
    				Analog8->AppendText(valeur9.ToString());  
     
     
    			}
    		}
    a cet endroit this->Invoke(d, gcnew String(text)); remplacer par this->BeginInvoke(d, gcnew String(text));

    en fait, ça résoud mon problème de latence exposé là

    http://www.developpez.net/forums/d13...icher-textbox/

    dont mes valeurs varie à la second de réaction maintenant, seulement il met impossible de bouger la fenêtre ou de la fermer

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

Discussions similaires

  1. Action sur radio buttons
    Par loutoune54 dans le forum jQuery
    Réponses: 2
    Dernier message: 01/03/2013, 12h24
  2. Réponses: 3
    Dernier message: 06/04/2010, 11h56
  3. Comment mettre une action sur le button
    Par darkmen11 dans le forum VC++ .NET
    Réponses: 5
    Dernier message: 01/05/2009, 14h32
  4. Pb d'action sur un clip
    Par bencasp dans le forum Flash
    Réponses: 4
    Dernier message: 22/10/2003, 17h11
  5. [Flash MX] Action sur un bouton
    Par WriteLN dans le forum Flash
    Réponses: 9
    Dernier message: 20/10/2003, 14h01

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