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.
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.
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é) :
Après, tu gères ton menu en y ajoutant dynamiquement des éléments (les noms des feuilles stockés dans ta Tlist).
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);
Tiens-nous au courant....
A+![]()
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).
Salut à vous 2,
Merci beaucoup pour votre aide...
Je v'as essayer et je vous tiens au courant.
A+,
Seb.
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) .![]()
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.
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.
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...
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 ?
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.
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.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager