Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Retornar somente hierarquia do nó da Treeview


Question

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 to post
Share on other sites

1 answer to this question

Recommended Posts

  • 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 to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      148676
    • Total Posts
      644492
×
×
  • Create New...