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

Composants VCL Delphi Discussion :

Connaitre la form ouvert dans la MDI


Sujet :

Composants VCL Delphi

  1. #1
    Membre habitué Avatar de sondo
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Août 2004
    Messages : 540
    Points : 162
    Points
    162
    Par défaut Connaitre la form ouvert dans la MDI
    Bonjour,

    J'ai une form MDI avec des menus. Dans les menus il ya QUITTER. Si on clique sur QUITTER l'application se ferme. Je veux faire de tel sorte que si on clique sur le menu QUITTER, il ferme d'abord tous les forms ouvertes.
    En résumer : comment faire pour connaitre la/les form qui est/sont ouvertes et ramener le/leurs nom respectif(s).
    Merci d'avance.

  2. #2
    Membre éprouvé Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 14
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Points : 912
    Points
    912
    Par défaut
    Bonjour,

    j'essaierai un truc dans ce genre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        I := 0;
        while (I < Screen.FormCount) do
        begin
           if not Screen.Forms[i].closequery then
             I := I + 1;
        end;
    Tu noteras qu'il n'est pas utile d'incrémenter I puisque c'est Screen.FormCount qui se décrémente (à chaque fermeture qui marche).

    Ceci dit ta demande me semble déplacée car lorsqu'une application MDI se referme elle ferme déjà auparavant l'ensemble des fenêtres.


    a+
    Dans le vocabulaire des couturiers seulement, patron est synonyme de modèle.
    Aymond d'Alost

  3. #3
    Membre habitué Avatar de sondo
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Août 2004
    Messages : 540
    Points : 162
    Points
    162
    Par défaut
    Salut,

    Ceci dit ta demande me semble déplacée car lorsqu'une application MDI se referme elle ferme déjà auparavant l'ensemble des fenêtres.
    Je pense que tu as raison, il n' y' a pas trop d'intérêt à le faire.
    Merci.

  4. #4
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 419
    Points : 5 818
    Points
    5 818
    Par défaut
    dans le cas ou tu ne veut pas fermer ton appli mes toute les form
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    procedure TfMain.Toutfermer1Click(Sender: TObject);
    var
      i : integer;
      count : integer;
    begin
      count := MDIChildCount -1;
      if   MDIChildCount > 0 Then
        for i := count downTo 0 Do
        begin
          TFORM(MDIChildren[i]).close;
          Application.ProcessMessages;
        end;
    end;
    @+ Phil
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  5. #5
    Membre habitué Avatar de sondo
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Août 2004
    Messages : 540
    Points : 162
    Points
    162
    Par défaut
    Salut anapurna,

    Ton code est excellent. J'ai fais mon code de tel sorte que il ferme d'abord tous les form ouvert avec ton code. Si aucune form n'est ouvert l'application se ferme. Encore merci.

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

Discussions similaires

  1. Connaitre les forms ouvertes
    Par jojo86 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 19/02/2008, 21h58
  2. .Net 2.0 - Bug de form size dans un MDI
    Par deathwearer dans le forum Windows Forms
    Réponses: 3
    Dernier message: 25/09/2007, 19h50
  3. Réponses: 11
    Dernier message: 28/02/2007, 12h18
  4. [Form et popup] target d'un form ouvert dans une popup
    Par Flobel dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 19/01/2007, 21h05
  5. Lister les fenêtres MDI ouvertes dans un menu
    Par say dans le forum C++Builder
    Réponses: 10
    Dernier message: 21/11/2005, 11h23

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