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

Delphi Discussion :

Fermeture d'une application


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 62
    Par défaut Fermeture d'une application
    Bonjour tous le monde!!!
    mon probleme est trés simple, sur mes aplications delphi g esseyé d'introduir un message ('etes-vous sure de vouloir quitter?') lors'que l'utilisateur ferme l'application, automatiquement je l'ai fait à l'evenement on close mais le souci c'est que même si l'utilisateur choisi de ne pas fermer lapplication cette dernier se ferme commeme!!!

    form onclose...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    begin
       if messagedlg('etes vous sure de vouloir quitter?',mtconfirmation,[mbyes,mbno],0)=mryes then
        application.terminate
      else
        ?????????????
    end;
    je ne sais pas quoi metre à la place des ???? afin de présérvé l'application en execution dans le cas ou on choisi de ne pas quitter!!!

    Et merci d'avence

  2. #2
    Membre éclairé Avatar de petitprince
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juillet 2006
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juillet 2006
    Messages : 322
    Par défaut
    Il faut mettre ça dans la procedure OnCloseQuery de ta fiche principale...
    Normalement, ça devrai le faire bonne nuit...

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 62
    Par défaut
    Oui mais si on clic sur no sa se ferme commeme
    Psk jutilise:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    begin
      if messagedlg('etes vous sure de vouloir quitter?',mtConfirmation,[mbyes,mbno],0)=mryes then application.Terminate else
    end;
    que dois-je metre apré else pr que ça ne se ferme pas?

    merci!!!

  4. #4
    Membre éclairé Avatar de petitprince
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juillet 2006
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juillet 2006
    Messages : 322
    Par défaut
    Ben Biensur que ca se ferme quand même !! C'est pas le but ? C'est que j'ai pas compris

    Bon alors à ce moment là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    begin
     if MessageDlg('etes vous sure de vouloir quitter?', mtConfirmation,[mbyes, mbno],0) = mryes then
      Application.Terminate 
     else
      CanClose := False; // c'est  ça !
    end;
    Moi je vouyais ça du style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    begin
     if MessageDlg('Voulez-vous enregistrer les modifications ?',mtConfirmation,
      [mbYes, mbNo], 0) = mrYes then
       begin
        SaveDialog1.Execute;
        //... traitement
       end
      else
       Application.Terminate;
    end;
    Voilà, si c'est clair, n'oublie pas le tag Résolu !
    A plus

  5. #5
    Membre éclairé Avatar de Ludo_360
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    295
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 295
    Par défaut essai comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    begin
     if MessageDlg('etes vous sure de vouloir quitter?', mtConfirmation,[mbyes, mbcancel],0) = mrcancel then
      CanClose := False
     else
      Application.Terminate;
    end;
    et ça marche!

    a+

    ludo

  6. #6
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Par défaut
    Si Form1 est la fiche principale, il est inutile de mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Application.Terminate;
    La fermeture de la fiche principale de l'appli provoque la fermeture de l'appli
    Donc si Form1 est la fiche principale, il peut écrire simplement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    begin
      if MessageDlg('etes vous sure de vouloir quitter?', mtConfirmation,[mbyes, mbcancel],0) = mrcancel then
      CanClose := False;
    end;
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  7. #7
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    Pour precision "CanClose" est une variable passée en parametre "Var" donc toute modification remonte jusqu'a la fonction appelante.

    LE principe de cet evenement (OnCloseQuery) est de d'alerter le developpeur quand l'utilisateur "requiere" une fermeture de l'applciation.

    Le developpeur peut ainsi autoriser ou non la fermeture via la madification du parametre "CanClose", par defaut a True.

    Une fois le gestionaire d'evenement OnCloseQuery terminé, la classe TForm teste la valeur de CanClose et selon le cas, poursuit ou non le processus de fermeture.

    Cela marche pour toutes les forms, mais l'effet n'est pas le meme selon que c'est une simple form ou la form principale (premiere form cree) car le systeme ferme automatiquement l'application quand la form principale se ferme.

+ 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