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.