Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-06-2007
[David] David is offline
Miembro Premium
 
Registrado: May 2003
Ubicación: Málaga
Posts: 417
Poder: 16
David Va por buen camino
Smile Cómo asignar imagenes a un TTreeView

Hola

Tengo un Ttreeview cuyos nodos voy rellenando de una base de datos, con categorias y al final en nombre del informe .

La idea es seleccionar un informe para imprimir.

El arbol puede contener varias directorios , tal y así :

raiz -Carpeta1-CarpetaA - Informe100
-Informe101

-Carpeta2 - informe102

etc...

Así pues en el ejemplo que he puesto , en Carpeta1 y Carpeta2 y CarpetaA (que esta contenida en Carpeta1) , iría una imagen del Timagelist , por ejemplo la 0 , y donde pone informeXXX iria pues otra imagen , por ejemplo la 1.

Quiero que al crearse el arbol , pues salga cada nodo del TTreeView con su imagen correspondiente.

Un saludo
Responder Con Cita
  #2  
Antiguo 11-06-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: May 2003
Ubicación: Campeche, México
Posts: 2.727
Poder: 18
maeyanes Va por buen camino
Me imagino que estás preguntando como asignar estas imagenes en tiempo de ejecución mientras llenas el TreeView?

Si es así, solo tienes que asignar la propiedad ImageIndex y SelectedIndex del TTreeNode:

Código Delphi [-]
var
  Node: TTreeNode;

begin
  Node := TreeView1.Items.AddChild(nil, 'Carpeta 1');
  Node.ImageIndex := 0;
  Node.SelectedIndex := 0
end;


Saludos...
Responder Con Cita
  #3  
Antiguo 11-06-2007
[David] David is offline
Miembro Premium
 
Registrado: May 2003
Ubicación: Málaga
Posts: 417
Poder: 16
David Va por buen camino
De esa manera , hay un problema .

Mi código es más o menos así :

Código Delphi [-]
procedure TForm.Oncreate;
var
nodo : array of TTreenode;
SetLength(nodo,X);

//Valor raiz 

nodo[0] := TreeView1.Items.add(nil,'Informes');
nodo[0].ImageIndex := 2;// valor en el TImageList
nodo[0].SelectedIndex := 2;

//Valores que tendrán el dibujo de carpetas

while not TablaCarpetas.eof do
begin
  nodo[ivalordelabasededatos] := TTreeView1.items.AddChild(padre,'Texto');
  nodo[ivalordelabasededatos].ImageIndex := 0;
  nodo[ivalordelabasededatos].SelectedIndex := 0;
end;

// valores que tendrá el dibujo de informe

while not TablaInformes.eof do
begin
 nodo[ivalordelabasededatos] := TTreeView1.items.AddChild(padre,'Texto');
  nodo[ivalordelabasededatos].ImageIndex := 1;
  nodo[ivalordelabasededatos].SelectedIndex := 1;
end;

Bien , si hago esto , el primer valor , el raiz , NO toma la imagen , y luego los demás si los lleva bien , PERO , cuando selecciono un nodo de los que contiene la propiedad ImageIndex = 1 , se me cambia la imagen al que tiene el ImageIndex := 0.

Este es el problema. Que si me los rellena , pero al seleccionar pues los de dibujo informe ,cambia el icono.
Responder Con Cita
  #4  
Antiguo 11-06-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: May 2003
Ubicación: Campeche, México
Posts: 2.727
Poder: 18
maeyanes Va por buen camino
Tu problema está en que estás usando Nodo[index]...

Has solo:

Código Delphi [-]
  Nodo := Treview1.Items.Add(nil, 'Informes');
  Nodo.ImageIndex := 0;
  Nodo.SelectedIndex := 0;

Esto es, si usas la forma Nodo[0] en realidad estás haciendo Nodo.Item[0].ImageIndex := 0; lo que establece el valor de la propiedad del primer nodo hijo de Nodo...

Graficamente sería así:

Código:
- Nodo
  |- Nodo[0] <--- aqui estas haciendo ImageIndex en realidad...
  |- Nodo[1]


Saludos...
Responder Con Cita
  #5  
Antiguo 11-06-2007
[David] David is offline
Miembro Premium
 
Registrado: May 2003
Ubicación: Málaga
Posts: 417
Poder: 16
David Va por buen camino
Cool

Esto es increible , el mismo código que he puesto arriba lo he probado en otro ordenador y sale bien .

Ahora si que no entiendo nada .

De todas maneras , por si mañana no me sale , hay algo que no puedo hacer y es no poner el nodo sin un array , es decir tengo que poner nodo[X] , por que es la única manera de de rellenar los datos de la base de datos.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Asignar imagenes a tablas soloriv Gráficos 2 09-03-2005 16:03:56
Tutorial sobre imagenes en TTreeView bustio OOP 1 26-01-2005 05:46:09
Asignar 2 imagenes a un BitBtn neon OOP 1 18-01-2005 16:42:57
Imagenes en TTreeview cso2000 OOP 3 13-12-2004 20:13:22
Como puedo imprimir un TtreeView con imagenes? jmrojass Varios 0 03-06-2003 22:03:38


La franja horaria es GMT +2. Ahora son las 14:26:46.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi