Montar TreeView com MainMenu
Frederico Brigatte***
Curtidas 0
Melhor post
Emerson Nascimento
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.
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.
GOSTEI 1
Mais Respostas
Frederico Brigatte***
29/08/2011
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.
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.
GOSTEI 0
Frederico Brigatte***
29/08/2011
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.
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??
GOSTEI 0
Frederico Brigatte***
29/08/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.
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?
GOSTEI 0
Frederico Brigatte***
29/08/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.
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?
GOSTEI 0
Frederico Brigatte***
29/08/2011
Ninguém??????
GOSTEI 0