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++Builder Discussion :

Message "Enregistrer les modifications" [Débutant]


Sujet :

C++Builder

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 265
    Points : 108
    Points
    108
    Par défaut Message "Enregistrer les modifications"
    Salut,

    J'ai fait une recherche et j'ai pas trouvé donc voici ma question:

    Comment pourrait-on faire apparaitre un message " voulez vous enregistrer les modifications" qu'on peut voir dans n'importe quel traitement de texte

    J'ai un StringGrid auquel on peut modifier les cellules, ajouter/supprimer une ligne ect et je souhaite que si l'utilisateur cherche à quitter/ouvrir un autre fichier sans avoir enregistrer les modifications de l'actuel, on lui pose la question pour savoir si il veut le faire ...

    Comment ceci serait-il faisable, je manque d'idées ?
    thanks

  2. #2
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 307
    Points
    1 307
    Par défaut
    Utilise la fonction MessageDlg:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if( MessageDlg("Voulez vous enregistrer les modifications ?", mtConfirmation, TMsgDlgButtons() << mbYes << mbNo, 0) == mrYes)
    {
      // L'utilisateur a répondu OUI
    }
    else
    {
      // L'utilisateur a répondu NON ou a fermé la fenêtre
    }
    Regarde l'aide (F1) sur MessageDlg, il y a toutes les explications et les différentes options pour utiliser cette fonction.
    Ce que l'on apprend par l'effort reste toujours ancré plus longtemps...

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 265
    Points : 108
    Points
    108
    Par défaut
    Merci, je me suis débrouillé pour faire un bon truc avec ton aide!

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 265
    Points : 108
    Points
    108
    Par défaut
    J'ai un bug à ce niveau: j'ai mis ceci dans l'évènement du click d'un bouton:
    J'ai supprimé les instructions dans le if pour que ce soit plus lisible parce qu'il y avait bcp de lignes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    void __fastcall TForm1::Button4Click(TObject *Sender)
    {
      if( MessageDlg("Voulez vous enregistrer les modifications ?", mtConfirmation, TMsgDlgButtons() << mbYes << mbNo, 0) == mrYes)
    {
         //instructions
    }   //fermeture if "voulez vous enregistrer les modifications?"
     
     
    else    // il repond NON
    {
     Form1->Close(); // L'utilisateur a répondu NON ou a fermé la fenêtre
    }
    }
    Et le bug est que le message apparait deux fois( le deuxième apparait après avoir cliqué sur le bouton oui ou non du premier )...

    C'est très étrange parce que j'ai essayé dans un autre projet et mettant simplement un bouton sur la Form et ça marche très bien ... mais là dans mon projet il me met deux fois le message , je vois vraiment pas d'ou ça peut venir

    EDIT: je viens de voir qu'en fait il me met pas deux fois le message , mais en deuxième celui qui se déclenche dans un tout autre évènement en fait! très étrange !

  5. #5
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 307
    Points
    1 307
    Par défaut
    Tu as probablement un message identique dans un autre évènement comme le OnClose par exemple...
    Ce que l'on apprend par l'effort reste toujours ancré plus longtemps...

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 265
    Points : 108
    Points
    108
    Par défaut
    Je viens de trouver en fait ...

    Simplement quand je fais Form1->Close il me repose la question car j'ai créé un autre évènement OnCloseQuery dans lequel il peut fermer que dans certaines conditions c'est ( gérer avec le bool CanClose )

    Mais de ce fait dans mon évènement actuel dans lequel je fais Form1->Close
    Comment je peux lui indiquer de considerer que CanClose est toujours à true....
    Je sais pas si c'est très clair ce que je dis

    EDIT: en fait je laisse juste Form1->Close(); dans l'évènement comme ça , quand je déclenche cet évènement, il va dans celui OnCloseQuery , et il ne me pose la question d'une fois ...

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/07/2014, 10h47
  2. Réponses: 3
    Dernier message: 29/05/2012, 15h25
  3. Eviter le message "Voulez-vous enregistrer les modifications."
    Par melouille56 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/02/2009, 13h44
  4. Réponses: 11
    Dernier message: 16/05/2006, 12h34
  5. [DOM] comment enregistrer les modifs?
    Par noobiewan kenobi dans le forum Format d'échange (XML, JSON...)
    Réponses: 26
    Dernier message: 30/07/2004, 10h56

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