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
|
||||
|
||||
¿Cómo usar un Pointer?
Hola a todos, como se utiliza un pointer?
tengo un treeview y estoy intentando almacenar informacion en la propiedad Data de los nodos, q es TPointer, pero ni idea de por donde cogerlo. Saludos a todos. |
#2
|
||||
|
||||
Creo que es esto lo que necesitas.
Código:
type TCadena=String[255]; type TEnCD=record // el regisro asociado a cada nodo del TTreeview Titulo, Categoria, RutaEnCD, Comentario :Tcadena; end; type TpEnCD=^TEnCD; // TpEnCD es un tipo de datos que será un puntero al registro TEnCD var pn:TpEnCD; begin try begin new(pn); // creamos el espacio en memoria pn^.Titulo:=edit1.text; pn^.RutaEnCD:=edit2.text pn^.Comentario:=richedit1.text; pn^.Categoria:='CD sin categorias'; data := pn; // y para recuperarlo : pn := TpEnCD(Data); // o bien Showmessage(TpEnCD(Data)^.Titulo) // para liberar de memoria: dispose (TpEnCD(Data)); |
#3
|
||||
|
||||
Algo muy importante: Al tratarse de punteros, luego queda en tus manos el echo de liberar la memoria utilizada por lo que apunte estos punteros, la metodología a utilizar, es asignar el puntero después que se crea el TTreeNode y lo importante que te quiero comentar, es utilizar el evento OnDeletion, para liberar la memoria utilizada por este puntero.
Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#4
|
||||
|
||||
Con la idea de Lepe puedes usar el puntero para guardar un registro en cada nodo.
También te comento que dado que los objetos son a fin de cuentas punteros puedes guardar directamente objetos en cada nodo haciendo el moldeo adecuado: Data := Pointer(UnObjeto) // asignar el objeto UnObjeto := TUnObjeto(Data) // recuperar el objeto Esto, claro está, no invalida el hecho de tener que liberar recursos como apunta delphi.com.ar usando el método Free del objeto en el evento OnDeletion. // Saludos |
#5
|
||||
|
||||
Cita:
Saludos |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
|