Ver Mensaje Individual
  #1  
Antiguo 03-11-2004
MaGNa MaGNa is offline
Miembro
 
Registrado: nov 2004
Posts: 23
Reputación: 0
MaGNa Va por buen camino
Question Novato con TTreeView

Hola, estoy desarrollando una aplicación que debe mostrar en una estructura de árbol los documentos que contiene un expediente.

Ejemplo:

+ Expediente 1/2004
+ Cartas
1/2004: Tal
2/2004: Pascual
+ Informes
7/2004: Uno
16/2004: Otro

Como veréis hay que rellenar la estructura en tiempo de ejecución y nunca he usado TreeView.

Necesito un sencillo ejemplo para ir creando los elementos, que están en una BD. Uso Delphi 7.

He usado lo siguiente:

Código Delphi [-]
 
cargarbol.Active:=false;
cargarbol.Sql.Clear;
cargarbol.sql.Add('select * from cartas where expediente ="'+datos.expedientes.fieldbyname('numero').asstring+'"');
cargarbol.active:=true;
cargarbol.First;
while (not cargarbol.eof) do
begin
arbol.items.AddChild(arbol.Items[1],cargarbol.fieldbyname('numero').asstring+': '+cargarbol.fieldbyname('resumen').asstring);
cargarbol.Next;
end;
cargarbol.Active:=false;
cargarbol.Active:=false;
cargarbol.Sql.Clear;
cargarbol.sql.Add('select * from informes where expediente ="'+datos.expedientes.fieldbyname('numero').asstring+'"');
cargarbol.active:=true;
cargarbol.First;
while (not cargarbol.eof) do
begin
arbol.items.AddChild(arbol.Items[1],cargarbol.fieldbyname('numero').asstring+': '+cargarbol.fieldbyname('resumen').asstring);
cargarbol.Next;
end;
cargarbol.Active:=false;

El resultado es cuanto menos extraño, ya que en el primer elemento de Cartas me añade el "+" y me mete dentro la siguiente carta o me la deja en el raíz. ¿Qué hago mal? ¿Me pueden poner un ejemplo?

Aparte... ¿Cómo podría asignar un evento DblClick a cada item? o en su defecto, ¿Cómo obtener el texto del item seleccionado?

Perdonad mi ignorancia pero estoy atascado y no encuentro soluciones, a pesar de haber probado varias cosas.

Gracias a to2.

Última edición por MaGNa fecha: 03-11-2004 a las 10:38:07.
Responder Con Cita