Ver Mensaje Individual
  #4  
Antiguo 24-02-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Reputación: 20
rgstuamigo Va por buen camino
Arrow

Yo lo hago recursivamente con éste código>
Código Delphi [-]
Procedure pMainMenuToTreeView(Nodos:TTreeNodes;Padre:TTreeNode;I:TMenuItem);
var j:Integer;
aux:TMenuItem;
n:TTreeNode;
Caption:String;
begin
 if ((I.Enabled=False)or(I.IsLine)) then Exit;
for  j:=0  to I.Count-1 do
  begin
    aux:=I.Items[j];
      if not(aux.IsLine)then
       begin
           if(aux.Enabled=True) then
            begin
             Caption:=StringReplace(aux.Caption,'&','',[]);//con esto elimino los '&'
             n:=Nodos.AddChild(Padre,Caption);
            end;
          pMainMenuToTreeView(Nodos,n,aux);
           if(not(aux.IsLine)and(aux.Count>0)) then
              n.ImageIndex:=1
           else n.ImageIndex:=2;
          n.SelectedIndex:=n.ImageIndex;
      end;
  end;
end;
Por supuesto que si analizan el código anterior se darán cuenta que tambien asigno los indices de las imagenes que tendra el treeView en sus nodos.En mi caso particular lo preciso así como está en el Código; aparte de eso yo no cargo los item que estén deshabilitados, ni tampoco los item que son separadores(item que son una linea de separacion).
Para llamarlo se hace así>
Código Delphi [-]
begin
 Arbol.Items.Clear;
 pMainMenuToTreeView(Arbol.Items,nil,Menu.Items);
end
Saludos...
POSDATA:Ultimamente estoy dando a conocer algunos códigos personales(secreto) que tenía por ahí guardados.
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7

Última edición por rgstuamigo fecha: 24-02-2010 a las 17:47:12.
Responder Con Cita