Adicionar imagem no treeview

Delphi

20/02/2005

O problema é o seguinte:

Gero em run-time os itens do treeview apartir de um menu, porém eu quero é colocar também as respectivas imagens dos itens dos menu nos nodos do treeview.

o código esta abaixo:

procedure AtualizaTree(tv: TTreeView; FMenuPrinc: TMainMenu;  fMenu: TMenu);
var i,j,p,imgS: integer;
    a,b: string;
    mI,mS: TMenuItem;
    n,sn: TTreeNode;
begin
  tv.Items.Clear;
  sn := nil;
//  sn := tv.Items.Add(sn,´Menus do Sistema´);
  for i := 0 to fMenuPrinc.Items.Count - 1 do begin
    mI := fMenu.Items[i];
    a := mI.Caption;  // Titulos do menus
    p := pos(´&´,a);
    if p > 0 then
      Delete(a,p,1);
    n := tv.Items.Add(sn,a);   //nó
    for j := 0 to mI.Count - 1 do begin
      mS := mI.Items[j];
      b := mS.Caption;   // Titulos dos sub-menus
      p := pos(´&´,b);
      if p > 0 then
        Delete(b,p,1);
      if b <> ´-´ then
       begin
       tv.Items.AddChild(n,b);
       tv.Items.Item[j].ImageIndex:=FMenuPrinc.Images.ComponentIndex;
       tv.Items.Item[j].SelectedIndex:=FMenuPrinc.Images.ComponentIndex;
       end;
      end;
    end;
    fgerenciador.Arvore.FullExpand;
end;




Quando vou gerar os itens do treeview dá um erro de índice.


Desde já, obrigado

Tchoninho


Tchoninho

Tchoninho

Curtidas 0

Respostas

Marcelo Saviski

Marcelo Saviski

20/02/2005

O [i:5e409e1dfe]Images[/i:5e409e1dfe] é um ImageList?

se for, tente ao invéz de Images.ComponenteIndex, usar isso (só para teste)


ImageIndex := Random(Images.Count);



GOSTEI 0
Tchoninho

Tchoninho

20/02/2005

O que eu quero é jogar a imagem que esta no menu principal no nó correspondente ao item do menu no treeview.


GOSTEI 0
Kapak

Kapak

20/02/2005

Não seria só colocar:
tv.Items.Item[j].ImageIndex:=mS.ImageIndex;
?


GOSTEI 0
Tchoninho

Tchoninho

20/02/2005

Seria se não mostra-se esta mensagem de erro: [u:f84ce1eb66][color=red:f84ce1eb66]List index out of bounds (6)[/color:f84ce1eb66][/u:f84ce1eb66]. E eu não sei como resolver..


GOSTEI 0
POSTAR