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 :

Liste des forms MDI ouvertes dans le menu principal


Sujet :

Delphi

  1. #1
    Seb
    Seb est déconnecté
    Membre régulier

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 81
    Points : 97
    Points
    97
    Par défaut [Résolu] Liste des forms MDI ouvertes dans le menu principal
    Salut à tous,

    Je voudrais ajouter dans le menu principal la liste des fenêtres (MDI) ouvertes et pouvoir mettre en premier plan la fenêtre par simple clic.

    Est-ce que quelqu'un pourrait m'aider???

    Ce serait cool.

    Seb.
    Avant de poser votre question merci de regarder :
    La FAQ Delphi (430 Questions / Réponses)
    ou les cours et tutoriels Delphi.

  2. #2
    Membre habitué

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 66
    Points : 129
    Points
    129
    Par défaut
    Si tu connais le nombre de feuilles et que tu leur as donné un nom générique du style form1 , form2 etc : tu peux utiliser une boucle et chercher FindComponent.

    Sinon, et dans ton cas c'est à mon avis la solution la plus appropriée, il doit y avoir moyen avec un code du style (mes excuses mais je ne l'ai pas testé) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    For i:=0 to ControlCount-1 do 
         if Controls[i].ClassName = 'TForm' then 
            MyTList.Items.Add(Controls[i].Name);
    Après, tu gères ton menu en y ajoutant dynamiquement des éléments (les noms des feuilles stockés dans ta Tlist).

    Tiens-nous au courant....

    A+
    Consultez :
    - La F.A.Q Delphi + Les Cours Delphi
    - La sélection des Freewares Delphi

  3. #3
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 101
    Points
    19 101
    Par défaut
    C'est fonction est directement intégrée dans Delphi. Il suffit de renseigner la propriété WindowMenu de ta fiche MDI. Voici un extrait de l'aide en ligne :
    Désigne le menu Fenêtre d'une fiche parent MDI.

    property WindowMenu: TMenuItem;

    Description

    Utilisez la propriété WindowMenu pour connaître ou définir le menu Fenêtre d'une fiche parent MDI. Le menu Fenêtre est un menu standard des applications MDI. Il contient des commandes permettant à l'utilisateur de gérer les fenêtres de l'application. On y trouve généralement les éléments de menu Cascade, Réorganiser les icônes, Mosaïque, etc.

    De plus, le menu Fenêtre énumère les fenêtres enfant ouvertes dans l'application. Quand l'utilisateur sélectionne l'une de ces fenêtres dans le menu, la fenêtre devient la fenêtre active de l'application.

    Bien que ce menu soit couramment appelé le menu Fenêtre, il peut prendre n'importe quel nom correspondant à celui d'un élément de menu de la barre de menus. Le nom des fiches enfant ouvertes est automatiquement fusionné au menu à l'exécution.

    WindowMenu n'a de sens que si la fiche est un parent MDI (c'est-à-dire que la propriété FormStyle de la fiche contient fsMDIForm).
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  4. #4
    Seb
    Seb est déconnecté
    Membre régulier

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 81
    Points : 97
    Points
    97
    Par défaut
    Salut à vous 2,

    Merci beaucoup pour votre aide...

    Je v'as essayer et je vous tiens au courant.

    A+,

    Seb.
    Avant de poser votre question merci de regarder :
    La FAQ Delphi (430 Questions / Réponses)
    ou les cours et tutoriels Delphi.

  5. #5
    Membre habitué

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 66
    Points : 129
    Points
    129
    Par défaut
    Toutes mes excuses. Le code que j'ai hâtivement écrit plus haut énumère bien évidemment les contrôles enfants du contrôle en cours (ce qui n'a rien à voir avec le sujet) .
    Consultez :
    - La F.A.Q Delphi + Les Cours Delphi
    - La sélection des Freewares Delphi

  6. #6
    Seb
    Seb est déconnecté
    Membre régulier

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 81
    Points : 97
    Points
    97
    Par défaut
    Eh, delphi-fan, faut pas rougir : ça arrive même aux meilleurs

    J'ai un peu essayé le WindowMenu mais pour le moment, je n'arrive à aucun résultat...

    Je vais poursuivre mes essais.

    Merci encore à tous.

    A+,

    Seb.
    Avant de poser votre question merci de regarder :
    La FAQ Delphi (430 Questions / Réponses)
    ou les cours et tutoriels Delphi.

  7. #7
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 101
    Points
    19 101
    Par défaut
    C'est pourtant tout simple, il suffit de mettre dans WindowsMenu le nom de l'item de menu correspondant. Cet item doit être un item de la barre de menu de la fenêtre parentMDI.

    Si tu veux un exemple, choisi MenuFichier->Nouveau->Autres..
    Dans l'onglet projet chosi "application MDI"
    Tu auras ainsi une application MDI "vide" mais avec un menu fonctionnant parfaitement. C'est une très bonne base pour commencer une application MDI.
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  8. #8
    Seb
    Seb est déconnecté
    Membre régulier

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 81
    Points : 97
    Points
    97
    Par défaut
    C'est vrai que c'est simple mais bon, pour le moment, mon application contient déjà presque 100 000 lignes... et je voulais y rajouter ce menu.

    Je développe pour le moment sur Delphi5 Entreprise.

    Mon form principal est un fsMDIForm et mes autres forms sont des fsMDIChild.

    J'ai un MenuItem qui s'appelle "MenuFenetre" où je veux mettre la liste des fenêtres.
    Donc, j'ai mis dans le form principal "MenuFenetre" dans la propriété WindowMenu et je lance l'application...

    Lorsque j'ouvre plusieurs fenêtres => Nada dans le menu...

    J'ai peut être rien compris mais en tout cas, pour le moment, cela ne marche pas...
    Avant de poser votre question merci de regarder :
    La FAQ Delphi (430 Questions / Réponses)
    ou les cours et tutoriels Delphi.

  9. #9
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 101
    Points
    19 101
    Par défaut
    Si, si je te rassure : tu as bien compris. C'est étrange que cela ne fonctionne pas... Comment crées-tu les fenêtres enfants ? et Comment sont-t-elles associées à la fenêtre principale ?
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  10. #10
    Seb
    Seb est déconnecté
    Membre régulier

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 81
    Points : 97
    Points
    97
    Par défaut [RÉSOLU] Liste des forms MDI ouvertes dans le menu principal
    Salut Nono40 et aux autres.

    Ca y est j'ai trouvé.

    Mon seul problème dns mon code :
    Je n'avais rien dans le fameux menu MenuFenetre (pas de Cascade, Toto ou autre) et dans ce cas là CA NE MARCHE PAS DU TOUT!!!

    Dès que l'on met quelque chose dans le menu => tout est OK...

    Merci encore beaucoup Nono40 et delphi-fan pour vos idées (même si elles peuvent être de temps en temps à côté de la plaque!!! ) et votre aide.

    A+,

    Seb.
    Avant de poser votre question merci de regarder :
    La FAQ Delphi (430 Questions / Réponses)
    ou les cours et tutoriels Delphi.

  11. #11
    Futur Membre du Club
    Inscrit en
    Février 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Plus de détail
    salut Seb,

    je suis moi aussi entraint de travailler sur les fiches MDI, et étant donnée que cela me fait la première fois.

    pourais tu me transmettre juste la partie du code avec la quelle tu as réalisé la focalisation des fiches filles aux choix.

    je voudrais pour ma part faire un contôle pour ne pas recrée une fiche fille déja crée, mais juste l'affiché de nouveau selon le besoin.

    merci à toi et bon courage.

  12. #12
    Membre du Club Avatar de Morfus
    Inscrit en
    Novembre 2006
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 93
    Points : 58
    Points
    58
    Par défaut
    Citation Envoyé par khiat
    salut Seb,

    je suis moi aussi entraint de travailler sur les fiches MDI, et étant donnée que cela me fait la première fois.

    pourais tu me transmettre juste la partie du code avec la quelle tu as réalisé la focalisation des fiches filles aux choix.

    je voudrais pour ma part faire un contôle pour ne pas recrée une fiche fille déja crée, mais juste l'affiché de nouveau selon le besoin.

    merci à toi et bon courage.
    le forum est fait pour ça

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

Discussions similaires

  1. Comment avoir la liste des forms ouvertes ?
    Par monthaldo dans le forum Forms
    Réponses: 0
    Dernier message: 26/05/2014, 12h04
  2. Menu dynamique - liste des derniers fichiers ouverts
    Par Elmotardo dans le forum Eclipse Platform
    Réponses: 6
    Dernier message: 08/07/2009, 15h51
  3. Liste des form ouverte
    Par olibara dans le forum C#
    Réponses: 2
    Dernier message: 08/11/2008, 18h22
  4. 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
  5. Réponses: 3
    Dernier message: 25/07/2005, 14h58

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