MaiMenu com Itens criados em run-time

20/05/2008

1

wana-wanga!

amigos, estou tentando criar os itens de um MainMenu dinamicamente, em tempo de execução do meu programa.

Conforme é exibido na imagem abaixo

[img:04a4f5a801]http://www.enio.pro.br/mainmenu.jpg[/img:04a4f5a801]

A [b:04a4f5a801]figura 1[/b:04a4f5a801] mostra o MainMenu padrão, somente com os itens que são o padrão do sistema

Na [b:04a4f5a801]figura 2[/b:04a4f5a801] mostra o resultado depois de se criar em tempo de execução, ou seja, ele pega a ordem do ultimo e vai acrescentando.

Já na [b:04a4f5a801]figura 3[/b:04a4f5a801] mostra o [b:04a4f5a801]ideal [/b:04a4f5a801]como deveria ficar após criar os itens,

porem não consegui implementar dessa forma....

para criar os itens eu uso mais ou menos assim

var
  Item, SubItem1, SubItem2 : TMenuItem;
begin
...
 Item := TMenuItem.Create(Nil);
 Item.Caption ´Cadastros´;
 Item.Name := ´cadastros´;

 SubItem1 := TMenuItem.Create(Nil);
 SubItem1.Caption := ´Clientes´;
 SubItem1.Name := ´clientes´;

 SubItem2 := TMenuItem.Create(Nil);
 SubItem2.Caption := ´Fornecedores´;
 SubItem2.name := ´fornecedores´;
  
 SubItem1.Items.Add(SubItem2);
 MainMenu1.Items.Add(SubItem1);
...


qualquer ajuda será bem vinda :D


Responder

Posts

20/05/2008

Paullsoftware

dá uma olhada nesse tópico, o amigo [b:0a74891b25]Neto[/b:0a74891b25] fez um menu dinamicamente pegando as informações de uma tabela e funcionou perfeitamente com ele, espero que te ajudade! :wink:


Responder
segue um exemplo:
var
  Item, SubItem1, SubItem2, SubItem3: TMenuItem;
  Indice: integer;
begin
  Item := TMenuItem.Create(Nil);
  Item.Caption := ´Cadastros´;
  Item.Name := ´cadastros´;

  SubItem1 := TMenuItem.Create(Nil);
  SubItem1.Caption := ´Clientes´;
  SubItem1.Name := ´clientes´;

  SubItem2 := TMenuItem.Create(Nil);
  SubItem2.Caption := ´Fornecedores´;
  SubItem2.name := ´fornecedores´;

  Item.Add(SubItem1);
  Item.Add(SubItem2);

  Indice := MainMenu1.Items.Count - 1; // insere na penúltima posição

  MainMenu1.Items.Insert(Indice, Item);

  Item := TMenuItem.Create(Nil);
  Item.Caption := ´Relatórios´;
  Item.Name := ´Relatorios´;

  SubItem1 := TMenuItem.Create(Nil);
  SubItem1.Caption := ´Produtos x Clientes´;
  SubItem1.Name := ´ProdutosXClientes´;

  SubItem2 := TMenuItem.Create(Nil);
  SubItem2.Caption := ´Estoque físico e financeiro´;
  SubItem2.name := ´EstFisFinanceiro´;

  SubItem3 := TMenuItem.Create(Nil);
  SubItem3.Caption := ´Notas fiscais por cliente´;
  SubItem3.name := ´NFClientes´;

  Item.Add(SubItem1);
  Item.Add(SubItem2);
  Item.Add(SubItem3);

  Indice := MainMenu1.Items.Count - 1;

  MainMenu1.Items.Insert(Indice, Item); // insere na penúltima posição
end;



Responder

21/05/2008

Eniorm

wana-wanga!

valeu amigos funcionou perfeitamente....

obrigado!


Responder