TreeView - capturando os items de um menu |
Top Previous Next |
|
// Colocando os items do menu dentro de uma TreeView *** PARA FAZER CONTROLE DE ACESSO VEJA DICA: MENUS-CONTROLE DE PERMISSOES
procedure GetMenuItems(const Menu: TMainMenu; var Tree: TATreeView); var I : Integer; No1, No2: TTreeNode;
procedure GetMenuSubItems(Menu: TMenuItem; var Node: TTreeNode); var I: Integer; begin // For no Itens se o Items > 0 Faz recursividade for I := 0 to Pred(Menu.Count) do begin if (Menu.Items[I].Caption <> '-') then Tree.Items.AddChildObject(Node, StrTran( Menu.Items[I].Caption, '&', '' ), PChar(Menu.Items[I].Name ));
if Menu.Items[I].Count > 0 then begin No2 := Tree.Items[ Tree.Items.Count-1 ]; GetMenuSubItems(Menu.Items[I], No2); end; end; end;
begin Tree.Items.Clear; for I := 0 to Pred(Menu.Items.Count) do begin Tree.Items.AddObject(nil, StrTran( Menu.Items[I].Caption, '&', '' ), PChar(Menu.Items[I].Name )); No1 := Tree.Items[ Tree.Items.Count-1 ]; GetMenuSubItems(Menu.Items[I], No1); end; Tree.StateRecursion := False; Tree.StateRecursion := True; end;
procedure TForm1.Button1Click(Sender: TObject); begin GetMenuItems(MainMenu1, ATree); end;
// sabe o nome do item de menu respectivo ao node selecionado:
Caption := StrPas(ATree.Selected.Data); |