Listar ActionList / ActionManager em TreeView

Delphi

10/09/2009

Boa tarde...Estou montando uma treeview pra controlar as acoes...Ja queimei os miolos pra jogar as acoes e categorias de um actionmanager ou action list numa treeview...Ocorre que estou percorrendo as acoes para jogar na treeview as categorias como raiz, mais ele tras as categorias repetidas pois retorna a categoria das acoes...alguem poderia me dizer como faço pra nao trazer as categorias repetidas como raiz...e as acoes como Nó logo abaixo das categorias ?

Desde ja agradeço a galera pela Ajuda...


Flast2008

Flast2008

Curtidas 0

Respostas

Afarias

Afarias

10/09/2009

Seu problema acredito é q as ações não estão ´ordenadas´ pela categoria -- normal! Bom, tem algumas formas de resolver isso, segue uma delas onde vc pode criar uma função que retorne o nó de uma categoria pelo seu nome (caso já exista):

function TForm1.EncontrarNo(const aNome: string): TTreeNode;
var
  i: Integer;
begin
  Result := nil;
  with TreeView1.Items do
  begin
    for i := 0 to Pred(Count) do
      if Item[i].Text=aName then
      begin
        Result := Item[i];
        Break;
      end;
  end;
end;


procedure TForm1.ConstruirArvore;
var
  i: Integer;
  no: TTreeNode;
  ac: TAction;
begin
  for i := 0 to Pred(ActionList1.ActionCount) do
  begin
    ac := TAction(ActionList1.Actions[i]);
    with TreeView1.Items do
    begin
      no := EncontrarNo(ac.Category);
      if no=nil then
        no := Add(GetFirstNode, ac.Category);
      AddChild(no, ac.Caption);
    end;
  end;
end;



T+


GOSTEI 0
Flast2008

Flast2008

10/09/2009

afarias....vc destruiu...é isso mesmo que eu precisava...valew dmais pela ajuda!!!


GOSTEI 0
POSTAR