FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#2
|
||||
|
||||
Y ¿para qué quiere hacer un casting de un record a un TObject, si con un Pointer puede hacer referencia a uno y otro? Yo creo que un TList es más que suficiente para casi todo.
Por otro lado, usar un Variant puede ser útil para tipos simples, pero para tipos estructurados no es posible usarlos directamente, y hay que hacer demasiado moldeo:
// Saludos |
#3
|
||||
|
||||
Román tiene razón, Además un Tlist o un TObjectList fueron diseñados con el propòsito de simplificar el manejo de listas enlzadas...
además, amigo "rgstuamigo", si te empeñas en hacer una lista enlazada "a la antigua" tendrás que implementar toda su funcionalidad a mano,... ya sabes: Insertar, eliminar, ir hacia adelante, ir hacia a atras... etc, etc... ¿Por que no intentar con los objetos que te proponen? tienen muchas ventajas y muy probablemente sean menos dolores de cabeza... Por otro lado si de todas formas utilizas un objeto del tipo:
pues mejor haces:
y dejas el trabajo de anterior y posterior al TObjectList.... Como comentario adicional... no se que peinsen uds. pero creo que con la POO, el uso de Records es menos eficiente... es decir, si saca de apuros y para proyectos rápidos es funcional, pero por principio, si un grupo de variables se puede agrupar es muy probable que sea candidato a objeto... Saludos, |
#4
|
||||
|
||||
Opino igual que ustedes: si las clases están usemoslas. Pero, he aquí que tal vez no conocemos en profundidad que es lo que se busca.
Quizás rgstuamigo es un estudiante y recién está viendo sobre los tipos abstractos de datos y a modo de tarea le pidieron que implementace una lista doble encadenada. Es un ejercicio bastante común, al menos cuando fuí estudiante se nos los pedía. En caso de que se trate de esto... tal vez sería más productivo para él que nuestra ayuda se focalize en asistirlo en como llevar a cabo la implementación de los procedimientos y funciones necesarios. Saludos, |
#5
|
||||
|
||||
Al principio pensé lo mismo, Delphius, pero entonces, ¿para qué la genericidad? Para aprender y realizar el típico ejercicio de listas, no hace falta irse por las ramas, se hace una lista de enteros y ya estuvo.
Por cierto, me parece que Tiburón ya traerá los famosos templates estilo C++ ¿no? Y, de hecho, creo que FreePascal ya los tiene. // Saludos |
#6
|
||||
|
||||
No es una corrección, es una mejora
Sí, tenéis razón, fué un tecleado rápido (sin pensar mucho...)
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#7
|
|||
|
|||
no no, es una correcion ...el nodo anterior y el siguiente (al menos, tengo entendido) tienen q ser del mismo tipo, para crear la 'cadena', aunque seguro q hay variedades con la clase inicial. Saludos
Última edición por coso fecha: 03-10-2008 a las 18:07:44. |
#8
|
|||
|
|||
Cita:
o bien de un record...
que creo que es lo q comenta roman. Lo que vengo a decir es que si bien las listas dinamicas genericas se creaban de esa manera, indicando el puntero al nodo siguiente y al anterior, ahora es una tipo de estructura mas que desfasada (o ya implementada en el propio lenguaje). Saludos y a ver si te sirve la información |
#9
|
||||
|
||||
Gracias por los comentarios amigos, quisiera aclarar unos puntos:
Cita:
Yo creo que estas estructuras de datos son parte escencial en la vida de un programador, y quien no las conosca estaria omitiendo un gran conocimiento de la Programacion. A veces me topado con Docentes en la Universidad (U) que te piden hacer algo pero sin utilizar lo que ya esta echo.¿Entonces que te queda? pues hacerlo y pienso que es bueno en cierta manera por que aprendes muchos a pesar de que a veces tu trabajo se vuelve tedioso. Cita:
Cita:
Lo que dices tu Roman para que hacerlo generica , pues te puedo decir si tuvieras un lista generica la podrias usar en cualquier circunstancias que la necesites y con cualquier tipo de objeto es decir Una sola implementacion y te sirve de mucho, por eso quiero saber sobre los templates en Delphi. Buenos esas mis aclaraciones y dudas que tenia, agradesco sus opiniones queridos amigos
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
|
#10
|
|||
|
|||
Hola...
A que te refieres con que Delphi es pura referencia? Ahora, como ya te han mencionado, Delphi cuenta con algunas clases que resuelven lo que necesitas. Checa la unidad Contnrs, ahí vienen implementadas las estructuras de pilas, colas, listas ordenadas, etc... Ya con esas clases básicas puedes heredar para hacer lo que desees... Ahora te pongo un ejemplo de como hacer una lista con estructuras record:
Saludos... |
#11
|
|||
|
|||
Cita:
|
#12
|
||||
|
||||
Cita:
Ahora, ¿que quieres hacer listas de datos simples como enteros, caracteres o strings (1)? Pues basta que los "envuelvas" en un registro o una clase
y ya puedes hacer tu lista de Strings. // Saludos (1) Estrictamente hablando, String no es un tipo simple, y si lo "envuelves en un record habrá que tener cuidado con la liberación de la memoria que usa. |
#13
|
|||
|
|||
Hola...
Cita:
Saludos... |
#14
|
||||
|
||||
Cita:
En cuanto a ti Roman esta bueno lo dices lo voy a probar, gracias por tu sugerencias aunque quisiera implementarlo personalmente pero aun me queda una duda ¿Existen templates en delphi si o no?
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
|
#15
|
|||
|
|||
Cita:
Última edición por coso fecha: 03-10-2008 a las 21:45:43. |
#16
|
||||
|
||||
Cita:
Ejemplo:
La última linea tiene miga: - Al crear el TobjectList le pasamos en el parámetro un True, eso le indica que cuando liberemos la lista, libere tambien los objetos que tiene dentro. - Pero, si tiene dentro un Timage y el otro es un panel, ¿cómo sabe delphi liberarlos? cada uno hace una cosa distinta al liberarse, por ejemplo: - el Timage debe liberar la imagen que tenga en su propiedad Picture - el Tpanel debe liberar los controles que tenga dentro (si tiene alguno) Esa es la magia del polimorfismo: Tanto el Timage como el TPanel heredan de TObject, así que cuando ejecutas l.items[0].free no se ejecuta el método Free del TObject, en realidad se ejecuta el método Free del Timage o del TPanel, según sea el caso. rgstuamigo, como ves esa "lista genérica que quieres hacer" está ya hecha, aunque debes comprender los conceptos para poder usarla con toda su potencia. Aún quieres usar records, punteros o lo que quieras, adelante, no seré yo el que te ate las manos . Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. Última edición por Lepe fecha: 03-10-2008 a las 21:20:17. Razón: corrección ortográfica |
#17
|
||||
|
||||
¿a qué le llamas tú templates?
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Lista Dinamica en Java | Alejo | JAVA | 1 | 17-01-2005 12:48:41 |
Como hacer una lista de temas.... | Delphius | Varios | 16 | 16-11-2004 20:37:56 |
lista dinamica | Telemaco | PHP | 6 | 19-08-2004 23:20:33 |
lo que necesito es ayuda en el TDA de una lista doblemente enlazada circular | program_tda | Varios | 12 | 17-02-2004 08:45:35 |
|