PDA

Ver la Versión Completa : TreeView dato oculto


ascrnet
23-12-2007, 17:46:33
hola

aqui estoy otra vez colegas, con otra duda sobre el treeview. este componente tiene alguna opcion de manejar un numero oculto para cada item. :confused:. esto tengo programador :


IBDatabase1.DatabaseName :='DBATARI.FDB';
IBDatabase1.Params.Add('user_name=SYSDBA');
IBDatabase1.Params.Add('password=masterkey');
IBDatabase1.Params.Add('sql_role_name=3');
IBQuery1.Close;
IBQuery1.SQL.CLEAR;
IBQuery1.SQL.ADD('SELECT ID,NOMBRE FROM GAMES');
IBQuery1.open;
Edit1.Text := IBQuery1.Fields[1].Text;
root := TreeView1.Items.AddChild(root,IBQuery1.Fields[1].Text);
root.ImageIndex := 2 ;
root.SelectedIndex := 2 ;
la idea es que el campo NOMBRE aparesca en el treeview y el ID tambien pero oculto , ya que lo necesito para despues hacer una busqueda por el NOMBRE "el campo ID" seleccionado en el treeview.

saludos

JXJ
23-12-2007, 22:00:13
yo estoy empezando con el uso de records.

asi dijamos
del record solo insertas, como un nodo, los campos que quieres
y dejas sin insertar el id , pero que es accesible atraves de la estrucutura
record.

droguerman
24-12-2007, 01:24:07
los treenode tienen una propiedad llamada data, usadla con sabiduria

ascrnet
24-12-2007, 02:09:08
los treenode tienen una propiedad llamada data, usadla con sabiduria

si la vi, pero el tipo de dato de esta propiedad yo la desconosco :confused: como la puedo manejar ?

y eso de usala con sabiduria , tiene algun problema esta propiedad :confused:

saludos y gracias por sus respuestas

david_uh
24-12-2007, 23:57:35
ya mira la propiedad data es lo maximo ahi puedes almacenar incluso informacion de un registro completo,, no tengo a la mano delphi pero puedes consultar en la ayuda de delphi ahi hay un ejemplo de lo que te menciono

pero si solo deseas guardar un dato entonces estas limitado a que sea un entero nada mas
pointer(listview.data)
// y lo recuperas
r:= integer(listview.data)

no recuerdo muy bien pero creo que con esto puedes empezar
Espero te sirva Daludos

ascrnet
25-12-2007, 22:45:30
ya mira la propiedad data es lo maximo ahi puedes almacenar incluso informacion de un registro completo,, no tengo a la mano delphi pero puedes consultar en la ayuda de delphi ahi hay un ejemplo de lo que te menciono

pero si solo deseas guardar un dato entonces estas limitado a que sea un entero nada masCódigo Delphi [-] (http://www.clubdelphi.com/foros/#)pointer(listview.data)
// y lo recuperas
r:= integer(listview.data)

no recuerdo muy bien pero creo que con esto puedes empezar
Espero te sirva Daludos

muchas gracias david_uh por el datillo.

para agregarlo a cada nodo

ra := TreeView1.Items.AddChild(roota,IBQuery1.Fields[1].Text);
ra.ImageIndex := 2 ;
ra.SelectedIndex := 2 ;
ra.Data:=pointer(IBQuery1.FieldByName('ID').AsInteger);
y despues seleccionado el nodo


IBQuery1.SQL.ADD('SELECT * FROM GAMES WHERE ID ='+IntToStr(integer(TreeView1.Selected.Data)));
aqui dejo como lo use por si alguien tambien tiene el mismo problema :D

saludos