1 (edited by sdpc62 2022-11-09 16:43:37)

Topic: Menu on the second form

Alright, how do I show the "About" menu in form 2.
My first form is "frmLogin" which asks for a password and the second is "Form1" where I process the data.
I would like the main menu to show on the "Form1" form and it is not working.
--
Bon, comment faire pour afficher le menu "A propos" dans le formulaire 2.
Mon premier formulaire est "frmLogin" qui demande un mot de passe et le deuxième est "Form1" ou je traite les données.
Je voudrais que le menu principal s'affiche sur le formulaire "Form1" et il ne fonctionne pas.

Post's attachments

Attachment icon Menu.jpg 7.9 kb, 16 downloads since 2022-11-09 

Re: Menu on the second form

Bonjour sdpc62

Ces deux snippets valent pour installer un menu sur la form2 ou la form3.

These two snippets are valid for installing a menu on form2 or form3.
¨For what you want to do, the principle remains the same, you just have to adapt it to your needs
¨Pour ce que tu veux faire, le principe reste le même, il te suffira de l'adapter à tes besoins

Créer des menus sur une form autre que la form principale
Create menus on a form other than the main form

procedure Form1_OnShow (Sender: string; Action: string); // event OnShow
var
   MyItem1: TMenuItem;
   MyItem2: TMenuItem;
   MySubItem3: TMenuItem;

   MenuForm2: TMainMenu;
begin


   MyItem1 := TMenuItem.Create (Form2);
   MyItem1.Caption := 'MyItem1';
   MyItem1.OnClick := @MenuClick1;

   MyItem2 := TMenuItem.Create (Form2);
   MyItem2.Caption := 'MyItem2';


   MySubItem3 := TMenuItem.Create (Form2);
   MySubItem3.Caption := 'Submenu';
   MySubItem3.OnClick := @MenuClick3;



   MenuForm2 := TMainMenu.Create(Form2); // Create MainMenu on Form2
   MenuForm2.Items.Add(MyItem1);         // you can use ADD or INSERT
   MenuForm2.Items.Insert(0, MyItem2);   // you can use ADD or INSERT
   MyItem2.Add(MySubItem3);

end;


procedure MenuClick1 (Sender: string);
begin
     ShowMessage('Hello from MyItem1');
end;

procedure MenuClick3 (Sender: string);
begin
     ShowMessage('Hello from Submenu');
end;

begin

end.


Autre formule :

procedure CreateMenu;
var  MainMenu:TMainMenu;
      Item:TMenuItem;
begin
  MainMenu:=TMainMenu.Create(Form3);
  Form3.Menu := MainMenu;
  Item:=TMenuItem.Create(Form3);
  Item.Caption := 'Bingo!';
  MainMenu.Items.Add(Item);
end;

begin
   CreateMenu;
end.

Dans cet exemple, on crée le menu principal sur Form3. Cela peut être utile si le formulaire de départ est utilisé pour le formulaire de connexion.

In this example, we create the main menu on Form3. This can be useful if the starting form is used for the login form.

JB

Re: Menu on the second form

Thank you Jean, I will see to adapt it to my program.
Have a good evening
---
Merçi Jean, je vais voir pour l'adapter a mon programme.
Bonne soirée