Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Retornar somente hierarquia do nó da Treeview


joaopaulobiegas

Pergunta

Bom dia pessoal!

Tenho uma treeview com a hierarquia dos formulários por setores da empresa, ex: pai, filho, neto...

Preciso, para fazer o controle de acesso dos usuários, o seguinte:

Quero que ele veja somente a árvore (treeview) que ele tem acesso.

O resto não quero que ele veja.

Os formulários que ele tem acesso já tenho numa tabela, a qual faço as liberações e revogações de acesso deles.

Alguém pode me ajudar?

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Voce tem 2 opções:

1 -  Voce pode criar o TTreeView dinamicamente : removendo e criando  os  itens novamente

ou

2 - Desabilitar os Nós que voce selecionar, mas dá mais trabalho.

 

exemplo ( 1 ) :

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    TreeView1: TTreeView;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  const EX_LEVEL=2;

implementation

{$R *.dfm}


procedure TForm1.Button1Click(Sender: TObject);
var  MyTreeNode1, MyTreeNode2 : TTreeNode;

begin
   with TreeView1.Items do
   begin
       Clear;
       MyTreeNode1 := Add(nil, 'Nó Pai1');
       AddChild(MyTreeNode1,'Nó Filho1');
       MyTreeNode2 := Add(MyTreeNode1, 'Nó Pai2');
       AddChild(MyTreeNode2,'Nó Filho2');
       MyTreeNode2 := TreeView1.Items[3];
       AddChild(MyTreeNode2,'Nó Neto2a');
       MyTreeNode2 := TreeView1.Items[4];
       Add(MyTreeNode2,'Nó Neto2b');
       MyTreeNode2 := TreeView1.Items[5];
       Add(MyTreeNode2,'Nó Neto2c');
       Add(MyTreeNode1, 'Nó Pai3');
       MyTreeNode2 := TreeView1.Items[7];
       AddChild(MyTreeNode2,'Nó Filho3');
       MyTreeNode2 := TreeView1.Items[8];
       AddChild(MyTreeNode2,'Nó Neto3a');

       TreeView1.FullExpand;
       TreeView1.Items.EndUpdate;

   end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var  MyTreeNode1, MyTreeNode2 : TTreeNode;
begin
   with TreeView1.Items do
   begin
       Clear;
       MyTreeNode1 := Add(nil, 'Nó Pai1');
       AddChild(MyTreeNode1,'Nó Filho1');
       MyTreeNode2 := Add(MyTreeNode1, 'Nó Pai2');
       AddChild(MyTreeNode2,'Nó Filho2');
       MyTreeNode2 := TreeView1.Items[3];
       AddChild(MyTreeNode2,'Nó Neto2a');
       MyTreeNode2 := TreeView1.Items[4];
       Add(MyTreeNode2,'Nó Neto2b');
       MyTreeNode2 := TreeView1.Items[5];
       Add(MyTreeNode2,'Nó Neto2c');
       Add(MyTreeNode1, 'Nó Pai3');
       MyTreeNode2 := TreeView1.Items[7];
       AddChild(MyTreeNode2,'Nó Filho3');
       MyTreeNode2 := TreeView1.Items[8];
       AddChild(MyTreeNode2,'Nó Neto3a');

       // Deleta o Nó Filho do Nó Pai1
       TreeView1.Items.Delete(TreeView1.Items[1]);

       // Deleta o Nó Neto(a) do Nó Filho2
       TreeView1.Items.Delete(TreeView1.Items[2].Item[0]);

       TreeView1.FullExpand;
       TreeView1.Items.EndUpdate;
   end;
end;


end.

Abraço

 

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...