Fórum Montar TreeView com MainMenu #407171

29/08/2011

0


Frederico Brigatte***

Frederico Brigatte***

Responder

Post mais votado

08/09/2011

tente com essa procedure:

procedure MontaTreeMenu(mnuMenu: TMenu; treeMenu: TTreeView);
var
  i: integer;
  No: TTreeNode;

  procedure MontaTreeItem(mnuItem: TMenuItem; NoPai: TTreeNode = nil);
  var
    x: integer;
    NoFilho: TTreeNode;
  begin
    // enquanto houver filhos...
    for x := 0 to mnuItem.Count - 1 do
    begin
      // adiciona um nó ao treeview
      NoFilho := treeMenu.Items.AddChild(NoPai, mnuItem.Items[x].Caption);
      if mnuItem.Items[x].Count > 0 then          // se o item tiver 'filhos'...
        MontaTreeItem(mnuItem.Items[x], NoFilho); // adiciona esses filhos
    end;
  end;
begin
  treeMenu.Items.BeginUpdate; // prepara para manipulação
  treeMenu.Items.Clear; // elimina todos os itens

  for i := 0 to mnuMenu.Items.Count - 1 do
  begin
    // adiciona um nó ao treeview
    No := treeMenu.Items.Add(nil, mnuMenu.Items[i].Caption);
    if mnuMenu.Items[i].Count > 0 then     // se o menu tiver 'filhos'...
      MontaTreeItem(mnuMenu.Items[i], No); // adiciona esses filhos
  end;

  treeMenu.Items.EndUpdate; // finaliza a manipulação
end;



a sintaxe é simples:

MontaTreeMenu(SeuMenu, SuaTreeView);

onde 'SeuMenu' pode ser um MainMenu, um PopupMenu ou qualquer menu derivado (herdado) de TMenu.

Emerson Nascimento

Emerson Nascimento
Responder

Gostei + 1

Mais Posts

29/08/2011

Frederico Brigatte***

Bom dia,

Gostaria de saber como preencher um TreeView com dados do componente MainMenu. Aproveitando, gostaria de saber como gravar num banco esses dados.

Estou precisando muito disso.

Obrigado.
Responder

Gostei + 0

08/09/2011

Frederico Brigatte***

Bom dia,

Gostaria de saber como preencher um TreeView com dados do componente MainMenu. Aproveitando, gostaria de saber como gravar num banco esses dados.

Estou precisando muito disso.

Obrigado.


Ninguém pra ajudar??
Responder

Gostei + 0

08/09/2011

Frederico Brigatte***

tente com essa procedure:

procedure MontaTreeMenu(mnuMenu: TMenu; treeMenu: TTreeView);
var
  i: integer;
  No: TTreeNode;

  procedure MontaTreeItem(mnuItem: TMenuItem; NoPai: TTreeNode = nil);
  var
    x: integer;
    NoFilho: TTreeNode;
  begin
    // enquanto houver filhos...
    for x := 0 to mnuItem.Count - 1 do
    begin
      // adiciona um nó ao treeview
      NoFilho := treeMenu.Items.AddChild(NoPai, mnuItem.Items[x].Caption);
      if mnuItem.Items[x].Count > 0 then          // se o item tiver 'filhos'...
        MontaTreeItem(mnuItem.Items[x], NoFilho); // adiciona esses filhos
    end;
  end;
begin
  treeMenu.Items.BeginUpdate; // prepara para manipulação
  treeMenu.Items.Clear; // elimina todos os itens

  for i := 0 to mnuMenu.Items.Count - 1 do
  begin
    // adiciona um nó ao treeview
    No := treeMenu.Items.Add(nil, mnuMenu.Items[i].Caption);
    if mnuMenu.Items[i].Count > 0 then     // se o menu tiver 'filhos'...
      MontaTreeItem(mnuMenu.Items[i], No); // adiciona esses filhos
  end;

  treeMenu.Items.EndUpdate; // finaliza a manipulação
end;



a sintaxe é simples:

MontaTreeMenu(SeuMenu, SuaTreeView);

onde 'SeuMenu' pode ser um MainMenu, um PopupMenu ou qualquer menu derivado (herdado) de TMenu.


Ok, é possível gravar numa tabela, o nome do menu e seu código?
Responder

Gostei + 0

08/09/2011

Frederico Brigatte***

tente com essa procedure:

procedure MontaTreeMenu(mnuMenu: TMenu; treeMenu: TTreeView);
var
  i: integer;
  No: TTreeNode;

  procedure MontaTreeItem(mnuItem: TMenuItem; NoPai: TTreeNode = nil);
  var
    x: integer;
    NoFilho: TTreeNode;
  begin
    // enquanto houver filhos...
    for x := 0 to mnuItem.Count - 1 do
    begin
      // adiciona um nó ao treeview
      NoFilho := treeMenu.Items.AddChild(NoPai, mnuItem.Items[x].Caption);
      if mnuItem.Items[x].Count > 0 then          // se o item tiver 'filhos'...
        MontaTreeItem(mnuItem.Items[x], NoFilho); // adiciona esses filhos
    end;
  end;
begin
  treeMenu.Items.BeginUpdate; // prepara para manipulação
  treeMenu.Items.Clear; // elimina todos os itens

  for i := 0 to mnuMenu.Items.Count - 1 do
  begin
    // adiciona um nó ao treeview
    No := treeMenu.Items.Add(nil, mnuMenu.Items[i].Caption);
    if mnuMenu.Items[i].Count > 0 then     // se o menu tiver 'filhos'...
      MontaTreeItem(mnuMenu.Items[i], No); // adiciona esses filhos
  end;

  treeMenu.Items.EndUpdate; // finaliza a manipulação
end;



a sintaxe é simples:

MontaTreeMenu(SeuMenu, SuaTreeView);

onde 'SeuMenu' pode ser um MainMenu, um PopupMenu ou qualquer menu derivado (herdado) de TMenu.


Ok, é possível gravar numa tabela, o nome do menu e seu código? Em que ponto encaixaria a rotina para gravar na tabela o nome do item do menu e seu código?
Responder

Gostei + 0

30/03/2013

Frederico Brigatte***

Ninguém??????
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar