1 (edited by webapplication4you 2020-11-23 21:41:09)

Topic: How to create a menuitem onto not main form

Hi

i find here in the forum how to create/hide a menuitem for a main form, but i cannot find how to create a menuitem for secondary forms.

This code is working for main form but is not working for secondary forms

procedure main_OnShow (Sender: TObject; Action: string);

    var
   MyItem1: TMenuItem;
   mnuPrincipal: TMenuItem;
   subClientes: TMenuItem;
          subVendedores: TMenuItem;
                 subProdotto: TMenuItem;


begin




   MyItem1 := TMenuItem.Create (main.MainMenu);
   MyItem1.Caption := 'Item1';
   MyItem1.OnClick := @MenuClick1;

   mnuPrincipal := TMenuItem.Create (main.MainMenu);
   mnuPrincipal.Caption := 'Menu Principal';

   subClientes := TMenuItem.Create (main.MainMenu);
   subClientes.Caption := 'Admin Clientes';
   subClientes.OnClick := @MenuClick3;

                subVendedores := TMenuItem.Create (main.MainMenu);
   subVendedores.Caption := 'Admin Vendedores';
   subVendedores.OnClick := @MenuClick4;

                            subProdotto := TMenuItem.Create (main.MainMenu);
   subProdotto.Caption := 'Admin Producto Terminado';
   subProdotto.OnClick := @MenuClick5;




   //main.mniFile.Insert(0, MyItem1);
   main.MainMenu.Items.Insert(0, mnuPrincipal);
   mnuPrincipal.Add(subClientes);
    mnuPrincipal.Add(subVendedores);
                 mnuPrincipal.Add(subProdotto);


end;

   procedure MenuClick1 (Sender: string);
begin

end;

Obviously i made necessary changes for second form, but not working at all.

Any suggestions

Thanks

Re: How to create a menuitem onto not main form

webapplication4you,
Typically you do the same thing on subsequent forms. If you could attach your project we could take a look and see what is wrong.

Re: How to create a menuitem onto not main form

Hello Webapplication4you, Hello ehwagner

Can this help you ?


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 votre formulaire de départ est utilisé pour le formulaire de connexion.

JB

Re: How to create a menuitem onto not main form

Hi ehwagner, jean.brezhonek

Thanks a lot for your suggestions. It works very fine.

Great job

Sincerely