![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Cita:
![]() Pero sí, no olvides leer nuestra guía de estilo, gracias. Y recuerda usar las etiquetas cuando pongas código, por ejemplo: ![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#2
|
|||
|
|||
|
hola!,
intentalo con esta rutina Código:
uses
System.Generics.Collections;
...
procedure LoadTreeViewFromDataset(TreeView: TTreeView; dataset: TDataSet);
var
id, parent_id: integer;
nombre: string;
parentNode, TreeNode: TTreeNode;
begin
/// genera una lista temporal de indices para acceder a los nodos por su ID
with Tdictionary<Integer, TTreeNode>.create do
try
dataset.First;
while not dataset.Eof do begin
/// -- Aqui lee los datos de la tabla del nodo que se va a crear
id := dataset.FieldByName('id').AsInteger;
parent_id := dataset.FieldByName('parent_id').Value;
nombre := dataset.FieldByName('nombre').Value;
/// ---
// comprueba si existe el nodo padre
if not TryGetValue(parent_id, parentNode) then
parentNode := nil;
// genera el nuevo nodo
TreeNode := TreeView.Items.AddChild(parentNode, nombre);
// inserta un puntero al id de la tabla, por si mas tarde se desea localizar el registro nuevamente
TreeNode.Data := pointer(id);
// lo inserta en la lista de indices
AddOrSetValue(id, TreeNode);
dataset.next;
end;
finally
/// Libera la lista de indices
free;
end;
end;
procedure TForm2.ButtonLeerTreeViewClick(Sender: TObject);
begin
try
TreeView1.Items.BeginUpdate;
FDQuery1.disableControls;
if not FDQuery1.active then
FDQuery1.open;
LoadTreeViewFromDataset(TreeView1, FDQuery1);
finally
FDQuery1.close;
FDQuery1.enableControls;
TreeView1.Items.endUpdate;
end;
end;
EJEMPLO:
|
|
#3
|
|||
|
|||
|
Buenos días bucanero, me complace decirte que la solución que me has propuesto me funciono
, lamento no haber visto tu respuesta antes, pero si, efectivamente es lo que estaba buscando, mil gracias ![]() |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Llenar TreeView desde una tabla | mRoman | OOP | 12 | 02-06-2020 13:19:01 |
| Cargar dbcombobox desde una tabla en mysql | asdberna | Conexión con bases de datos | 4 | 05-04-2013 20:43:06 |
| Cargar TActionManager desde TreeView | Neeruu | Varios | 5 | 04-03-2010 17:47:58 |
| ¿Como guardar una tabla desde el componente shell treeview? | krlox31416 | Varios | 9 | 29-09-2008 02:46:23 |
| Cargar un TTreeView desde una tabla | hibero | OOP | 8 | 15-07-2004 19:43:33 |
|