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 :

Fermeture d'une application


Sujet :

C++/CLI

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair�
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    243
    D�tails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 243
    Par d�faut Fermeture d'une application
    Bonjour,

    J'ai �crit un programme qui doit ex�cuter quelques actions quand on l'arr�te.

    Cela marche si on fait "Fichier", puis "Quitter".

    Mais je ne trouve pas comment intercepter la croix pour faire la m�me chose si on clique sur la croix ...

    Si quelqu'un peut me renseigner ce serait sympa.

    Bonne journ�e
    Jean-Louis.

  2. #2
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    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 397
    Par d�faut
    Entre autres, tu peux traiter l'�v�nement FormClosing. Mais il doit y avoir d'autres �v�nements un peu plus t�t qui seraient peut-�tre plus appropri�s...
    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 �clair�
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    243
    D�tails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 243
    Par d�faut
    Citation Envoy� par M�dinoc Voir le message
    Entre autres, tu peux traiter l'�v�nement FormClosing. Mais il doit y avoir d'autres �v�nements un peu plus t�t qui seraient peut-�tre plus appropri�s...

    Merci M�dinoc,

    J'ai d�j� essay�, cela ne marche pas car j'envoie des ordres sur un port COM pour arr�ter des appareils et j'utilise un timer pour s�quencer les ordres et la s�quence ne marche pas alors que cela fonctionne tr�s bien en faisant "Fichier" "Quitter". J'ai l'impression que le timer se fait tuer avant d'avoir commencer � travailler.

    Bonne journ�e

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    38
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 38
    Par d�faut
    Tu le fais bien avant le :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    if( components )
       delete components ;
    de la fonction "~Form1()".

    D�s que le soft va passer sur "delete components", plus rien ne fonctionnera. Donc il faut tout finir avant, quite � mettre un "while( pasfini )" juste avant le "delete components".

  5. #5
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    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 397
    Par d�faut
    De plus, le if ne sert � rien: delete sur nullptr est garanti ne rien faire par le standard.
    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.

  6. #6
    Membre �clair�
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    243
    D�tails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 243
    Par d�faut
    Citation Envoy� par sepullayer Voir le message
    Tu le fais bien avant le :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    if( components )
       delete components ;
    de la fonction "~Form1()".

    D�s que le soft va passer sur "delete components", plus rien ne fonctionnera. Donc il faut tout finir avant, quite � mettre un "while( pasfini )" juste avant le "delete components".

    Ben oui, je le mets bien avant. On dirait qu'il se passe des choses, mais je ne sais pas quoi et en tous cas mes trucs ne s'arr�tent pas

    Bonne soir�e

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    38
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 38
    Par d�faut
    Et quand tu mets des points d'arr�ts, ton soft passe aux m�mes endroits en cliquant sur le croix ?


    Essaye de mettre le contenu de ta fonction QuitterClicEvent(...), dans une fonction FermerMesCOM(), et de mettre Form1->Close(); dans QuitterClicEvent(...), genre :

    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
    // Destructeur de ta Form
    ~Form1()
    {
      FermerMesCOM(); // Ta fonction, qui doit être bloquante
     
      if( components )
        delete components;
    }
     
    // Fonction bloquante qui communique avec tes appareils
    void FermerMesCOM( void )
    {
      ...
    }
     
    // L'événement généré par Fichier->Quitter
    void QuitterClicEvent( ... ) // Les ... c'est pas significatif hein.
    {
      Form1->Close();
    }
    Met des points d'arr�t de partout, regarde ce qu'il se passe. Mais si ta fonction FermerMesCOM est vraiment bloquante il n'y a pas de raison que �a ne fonctionne pas.
    Tu peux aussi v�rifier que tu n'as pas d�j� arr�t� ton timer ou d�truis je ne sais quoi.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Fermeture d'une application �xterne
    Par Matt2094 dans le forum Langage
    R�ponses: 8
    Dernier message: 22/03/2006, 15h11
  2. Forcer la fermeture d'une application
    Par Bissada dans le forum Langage
    R�ponses: 2
    Dernier message: 06/10/2005, 21h42
  3. fermeture d'une application apr�s un temp d'inactivit�?
    Par sitdown dans le forum Autres Logiciels
    R�ponses: 1
    Dernier message: 24/08/2005, 15h44
  4. D�tection de la fermeture d'une application
    Par vanitom dans le forum MFC
    R�ponses: 6
    Dernier message: 19/08/2005, 18h11
  5. [Event]Annuler la fermeture d'une application
    Par willowII dans le forum Interfaces Graphiques en Java
    R�ponses: 3
    Dernier message: 16/11/2004, 09h28

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