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 :

Problème de fermeture de forme ShowModal


Sujet :

Delphi

  1. #1
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 14
    Points
    14
    Par défaut Problème de fermeture de forme ShowModal
    Bonjour à tous,

    Une petite question:
    Comment faire pour fermer une forme ouverte en 'showmodal'?
    J'ai Form1,lors du click sur un bouton, j'appelle Form2.ShowModal,mais Form1 reste toujours là alors que j'aimerai la fermer.
    J'ai essayé
    Form1.Close;
    Form1.ModalResult=mrCancel ou 2
    Rien à faire,elle ne veut pas partir.

    Merci d'avance

  2. #2
    Membre régulier Avatar de Bourak
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2005
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 231
    Points : 84
    Points
    84
    Par défaut
    salut

    D'après que j'ai compris vous voulez fermer form1 en ouvrant form2;
    La propriété showmodal bloque les autres formes.

    Esayer ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Form1.close;
    Form2.show;// utilisé ceci au lieu du showmodal
    Form2.FormStyle:=  fsStayOnTop;// mettre la forme en 1ère position
    Bonne travail;

  3. #3
    Membre éclairé Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Points : 789
    Points
    789
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       Self.Hide;  //On masque la fiche en cours (ici Form1)
       Form2.Showmodal;  //On fait afficher la fiche 2
       Self.Show;  //Quand la fiche 2 est fermée on fait réapparaître la fiche 1 (si on en a pas besoin, on peut toujours la fermer avec Self.Close)
    Bon dev!

  4. #4
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 14
    Points
    14
    Par défaut
    Merciii, ça marche nickel avec Self, c'est exactement ce que je cherchais!

  5. #5
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 14
    Points
    14
    Par défaut
    Bonsoir SlimJoe,
    Je ne sais pas trop ce qui s'est passé mais mon Self.Close ne fonctionne plus alors que tout à l'heure oui,par contre le Hide fonctionne.
    Je t'envoie donc ce morceau de code afin de m'aider à trouver l'erreur.

    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
    procedure TSupportEditForm.AddMoreBtnClick(Sender: TObject);
    var
      temp1:integer;
      temp2:string;
      reponse:word;
      Option : TLocateOptions;
    begin
      temp1:=StrToInt(PeriodEdit.Text);
      temp2:=DataForm.TSupport.FieldValues['NomSupport'];
      Option := [loCaseInSensitive];
     
      if Q1.RecordCount=temp1 then
       begin
         reponse:=MessageDlg('Vous ne pouvez plus ajouter de parutions à ce support,'
         +'vous devez modifier sa périodicité pour effectuer cette action,'
         +'souhaitez-vous le faire maintenant?',mtConfirmation,[mbNo,mbOk,mbCancel],0);
         if reponse=mrOk then
          begin
            if DataForm.QSupport.Locate('NomSupport',temp2,Option) then
             begin
             Self.Close;
             SupportModifyForm.ShowModal;
             end
             else
         if(reponse=mrNo) or (reponse=mrCancel)then CancelNewBtnClick(CancelNewBtn);
         end
      else if  Q1.RecordCount<temp1 then ParutionEditShow;;
      end;
    end;
    Merci larmoyant

  6. #6
    Membre éclairé Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Points : 789
    Points
    789
    Par défaut
    Salut Keisha,

    Voici un bout de l'aide de Delphi à propos de la propriété MainForm de l'objet Application :

    Use MainForm to determine the form that acts as the application’s main window. The main form is the first form created in the main body of the application. When the main form closes, the application terminates.
    En gros, ça dit que la 1ère fiche créée par Delphi devient la fiche principale et que dès qu'elle est détruite (ou fermée), l'application se termine.

    Dans ton code, si tu Close() la fiche principale, tu indiques à Delphi que tu veux sortir de ton application. Si tu veux uniquement la masquer, utilises Hide() (qui, en fait, ne change que la propriété Visible de la fiche à False).

    Bon dev!

Discussions similaires

  1. [Débutant] Problème de fermeture de form
    Par kitcarflo dans le forum VB.NET
    Réponses: 10
    Dernier message: 09/08/2012, 13h41
  2. Problème ouverture fermeture Form
    Par Allspark dans le forum C#
    Réponses: 6
    Dernier message: 26/08/2010, 12h57
  3. Problème de fermeture d'une Form
    Par krolis dans le forum C#
    Réponses: 10
    Dernier message: 30/04/2010, 14h51
  4. Problème de fermeture de Form
    Par MalyAniolek dans le forum Windows Forms
    Réponses: 3
    Dernier message: 10/09/2009, 20h06
  5. Problème de fermeture de Form mère avec fille existante
    Par Vonziz dans le forum Windows Forms
    Réponses: 9
    Dernier message: 20/02/2009, 22h50

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