7
votes

Comment créer des menus Subitems sous le nom de l'application sur OSX?

Comment ajouter Tmenuitem sous Project11 et supérieur Quit sur la capture d'écran ci-dessous?

Entrez la description de l'image ici

J'ai créé un Tmenubar avec une propriété UsetosMenu vérifiée. Le premier tmenuitem J'ai ajouté est le second dans la barre principale ...


0 commentaires

3 Réponses :


2
votes

J'ai créé une unité pour essayer de gérer ce que j'aimerais ... Avec cela, je peux utiliser un Tmenuitem spécifique ... et Move Ses subitems sur le sous-menu d'application ... (Je ne sais toujours pas comment ajouter un de zéro ...)

J'utilise aussi la réponse de Mehmed Ali Pour gérer les séparateurs ... xxx

Il fonctionne comme prévu et c'est ce que je veux sur OSX ... < Pré> xxx

mais maintenant, j'ai un problème sur Windows parce que tout ce que j'essaie, j'ai toujours le menu que j'ai ajouté pour Mac affiché sous Windows ...; O (


4 commentaires

Un SIFDEF supplémentaire devrait prendre en charge cela


@Johan: autour de quoi? ; O (la seule façon dont j'ai trouvé est de créer les ménulseurs seulement si c'est sur OSX ... mais cela signifie de les créer de manière dynamique, dans la source et non dans le DFM ... qui est moins convivial ... . Est-ce ce que vous voulez dire ou avez-vous une autre idée?


Mon idée était à IFDEF une source séparée pour OSX et Windows. deux arbres complètement différents. Notez que la modification du systèmeMenu dans Windows est une chose très rare et non recommandée du tout, de sorte que vous le feriez normalement dans le menu fichier .


Hummm .. je vois .. Je peux créer 2 différents datamodules .. un pour chaque plate-forme et utilisez le bon avec ifdef ... Bonne idée, merci!



4
votes

Vous pouvez le faire en attribuant un TMenubar de la classe d'implémentation IITEMSContainer à l'application.ApplicationMenuSuitems.

Exemple:

S'il y avait un composant de barre de menu sur le formulaire appelé Menubar1, vous appelez simplement les éléments suivants dans votre constructeur de formulaires (ou Oncreate).

Application.ApplicationMenuitems: = menubar1;

Vous pouvez ensuite avoir un deuxième composant TMenubar pour définir les autres éléments de menu.

Je vous pointerais du sujet Wiki sur la propriété ApplicationMenuitems, mais il n'a aucune aide supplémentaire ...

http://docwiki.embarcadero.com/vcl/ XE2 / EN / FMX.FORMS.TAPPLICATION.ApplicationMenuSuitems


1 commentaires

Dans XE7, cette propriété n'existe pas, ni rien de l'image sur tapsplication . Peut-être qu'il a été déplacé ailleurs?



1
votes

AS de Delphi Xe7, l'application Application.ApplicationMenuitems n'existe plus.

Vous devez maintenant créer un élément tmainmenu pour obtenir le résultat attendu, pas besoin de l'attribuer. Il suffit de supprimer un tmainmenu sur votre formulaire principal et ajoutez vos articles, et ils apparaîtront dans le menu d'application OSX.


0 commentaires