Dans ce tutoriel je vais vous montrer comment ajouter une barre de menu à votre application.
Pour cela nous allons utiliser le composant TMainMenu.

Posez le n'importe où sur votre fiche, il ne sera pas visible à l’exécution.
Moi je suis parti d'une fiche vierge mais rien ne vous empêche d'utiliser une fiche contenant déjà d'autres composants.

Ensuite faites un clic droit sur le TMainMenu et dans le menu contextuel sélectionnez le Concepteur de menus.

Le concepteur s'ouvre, sélectionnez l'élément que le concepteur vous propose de créer.

Dans l'inspecteur d'objet vous remarquerez que l’élément en question est un TMenuItem, allez dans sa propriété Caption et entrer le texte "Fichier".

Le premier élément de notre barre de menu est alors crée et le concepteur nous propose déjà d'ajouter un second élément dans la barre de menu. Et si nous sélectionnons notre premier élément "Fichier", le concepteur nous propose alors également de créer un premier élément dans son menu.

Nous allons déjà finir de créer tous les éléments de la barre de menus.
Vous connaissez la méthode, on sélectionne le nouvel élément et on renseigne sa propriété Caption.
Nous voulons obtenir ceci:

Maintenant que ceci est fait je vais vous parler un peu théorie.
Nous avons commencé par ajouté un TMainMenu sur notre fiche. Ce composant est en fait un conteneur destiné à accueillir des composants TMenuItem et à les afficher dans une barre horizontal en haut de la fiche.
Le rôle du TmainMenu s’arrête ici et c'est aussi là que commence celui des TMenuItem.
Chaque TMenuItem peut contenir un menu et dans ce menu nous pouvons y ajouter d'autres TMenuItem. C'est une chaine sans fin, vous êtes libres d'ajouter autant de sous-menus que vous le désirez.
La méthode est un peu la même qu'avec le TMainMenu.
Vous sélectionnez le TMenuItem auquel vous souhaitez ajouter un menu, le concepteur va vous proposer la création d'un nouvel élément dans ce menu, vous n'avez plus qu'à sélectionner ce nouvel élément et renseigner sa propriété Caption.
Modifiez le menu Fichier pour obtenir ceci:

Faites de même avec le menu Edition en ajoutant par exemple:
- Couper
- Copier
- Coller
- Supprimer
Et dans le menu aide vous pourriez mettre:
Voilà, le menu est crée, lancez donc l'application pour voir le resultat.
C'est plutôt bien pour le peu d'effort que nous avons fourni n'est ce pas ?
Nous pouvons encore y faire quelques améliorations.
Toujours dans le concepteur de menus, sélectionnez l'élément "Quitter" du menu "Fichier" puis faites un clic droit de la souris. Dans le menu qui s'ouvre choisissez Insérer un séparateur puis sélectionnez un autre élément du menu pour que cela prenne effet.
Lancez l'application pour mieux voir le résultat, vous devriez obtenir quelque chose comme ça:

Vous savez à présent comment créer des séparateurs pour regrouper visuellement les éléments par catégorie.
Alors juste pour information, si vous avez bien regardé l'inspecteur d'objet durant l'insertion du séparateur vous aurez pu voir que le séparateur n'est en fait qu'un autre TMenuItem qui a reçu un "-" dans sa propriété Caption.
Essayez de changer le Caption de l'un des éléments dans votre menu et vous verrez qu'il se transformera aussi en séparateur.
A présent il nous faut encore donner vie à tous ces éléments en faisant un peu de programmation.
Je ne le ferai pas pour tous, cela serait trop long et ce serait hors sujet.
Sélectionnez l'élément "Quitter" du menu "Fichier" puis allez dans l'inspecteur d'objet et faites un double clic sur l'événement OnClick.

Une procédure est ajouté dans le code de votre unité, ajoutez y simplement la commande Close.
procedure TForm1.Quitter1Click(Sender: TObject);
begin
Close;
end;
De la même manière sur l'élément "A propos" du menu "Aide", modifiez la procédure liée a l’événement OnClick comme ceci:
procedure TForm1.Apropos1Click(Sender: TObject);
begin
showmessage('Ceci est ma première application avec menu deroulant');
end;
Vous pouvez maintenant lancer l'application pour vérifier le fonctionnement de ces deux procédures.
Je vous ai dit plus haut que chaque TMenuItem pouvait contenir un menu. Grâce à cela, nous allons donc pouvoir créer un sous-menu dans le menu Fichier.
Dans le concepteur de menu, sélectionnez l'élément "Nouveau" du menu "Fichier" et faites un clic droit. Choisissez Créer un sous-menu. Pour la suite vous connaissez le principe, je vous laisse ajouter les éléments suivant à ce sous-menu:
Voilà vous savez comment ajouter des sous-menu.
Pour terminer ce tutoriel je vais vous donner quelques petites astuces supplémentaires.
Vous pouvez insérer un élément entre deux éléments déjà présent. pour cela sélectionnez le deuxième, faites clic droit puis choisissez Insérer.
Pour supprimer un élément, sélectionnez le, clic droit puis Supprimer.
Vous pouvez également déplacer les éléments entre eux par simple glisser déposer à la souris.
Pour permettre la navigation dans le menu par raccourci clavier, il suffit de modifier la propriété caption d'un élément en y insérant le caractère "&" devant le caractère choisi pour faire le raccourci. Ce caractère sera souligné lors de l'affichage dans le menu.
Par exemple avec "&Couper", il suffira de faire le raccourci "alt+c" pour lancer la commande Couper.
Avec "Co&pier", c'est le raccourci "alt+p" qu'il faudra faire pour lancer la commande Copier.
Les limitations de ces raccourcis sont:
- on ne peut pas avoir deux fois le même raccourci dans le même menu.
- on ne peut appeler le raccourci que lorsque le menu est ouvert.
Pour avoir des raccourcis qui fonctionne de partout, il y a la propriété ShortCut dans les TMenuItem.
Il suffit de sélectionner un raccourci disponible dans la liste de cette propriété et ce raccourci s'affichera automatiquement à coté du Caption dans le menu, comme ceci:

Pour finir, sachez que les menus ne sont pas figés. Ils peuvent être modifiés par programmation lors de l’exécution de l'application. Les composants TMainMenu et TMenuItem possèdent des méthodes permettant l'ajout ou la suppression d'autres TMenuItem dans leurs menus. Et comme tous composants, leur propriétés sont accessible par programmation.
Bonne programmation et rendez vous dans un prochain tutoriel.