Topic: menu

Can I create menu except the main form, and if yes how ?

Re: menu

Hello v_pozidis

If I understand your question you want to create menus on a form other than Form1
Try this :

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.


Other method :

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.

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

JB

Re: menu

Thank you, it work's fine.
It's a pity that MVDB has stop upgrades. It would be nice to have a menu creator instead writing scripts