FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Reusar unidad en Delphi
Hola Gente!
Estoy desarrollando un proyecto para una materia, tenemos que usar diferentes estructuras de datos, como por ejemplo arboles, listas simples y doblemente enlazadas. Por ejemplo aca les dejo la libreria de arbol:
Esta libreria, por ejemplo deberia usarla desde otra unidad donde modelo un ingreso de mascotas al sistema. El sistema modela una veterinaria. El tema es que mi TipoDatoMascota es un registro con datos propios (nombre mascota, peso, edad, etc) y tengo que vincularlo de alguna forma con el registro de datos del arbol. Lo hice agregano una propiedad a ese registro de tipo RegistroDatoArbol, hasta ahi todo bien, el tema es que cuando quiero insertar un nuevo nodo con la libreria de arbol, lo inserta, pero no estoy pudiendo traer los datos propios de la mascota. Como la idea es reusar la libreria, creo que no es una buena opcion declarar los tipos propios de la mascota dentro del registro TipoDatosArbol, ya que esta misma libreria deberia usarla con otras unidades con otros datos totalmente distinto. ¿Alguien sabe como puedo modelar esta especie de genericidad? Muchas gracias. |
#2
|
|||
|
|||
Parece puramente académico. ¿No se puede utilizar clases?. Lo pregunto porque si efectivamente como parece es un ejercicio y debe utilizarse los conocimientos adquiridos hasta el momento, bien es posible que aún no sepais nada de los objetos y debais "apañaros" con lo que sabeis. Igual no te sirve una solución que pase por declarar varias clases y utilizar herencia y polimorfismo para solucionar el problema aunque esa sea la mejor opción.
|
#3
|
|||
|
|||
Lamentablemente no se pueden utilizar clases y nada orientado a objetos, es ahí que tengo el problema.
|
#4
|
||||
|
||||
Cita:
Justamente la solución es utilizar herencia. Definir esos "elementos" que varían como clases y no como elementos fijos. Revisa Genéricos, pero va a ser lo mismo...
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#5
|
||||
|
||||
Se me ocurre utilizar punteros, pero eso complica un poco las cosas...
Hablo de memoria, pero sería algo así:
|
#6
|
|||
|
|||
Yo si he de ser sincero, tras leer tu descripción del problema y en base a lo que he entendido harías lo siguente para este caso en concreto y dando por sentado que para un caso genérico lo mejor sería crear los objetos necesarios y usar herencia.
Basandonos en tu tipo
y en que tu Cita:
Despues deberias asegurarte de que tu TipoDatoMascota está definida en unit de tipos que pudieras añadir al uses de las units en la que vayas a usar y añadiria esa unit al uses de la unit Arbol. Finalmente eliminina la declaración de RegistroDatosArbol de la unit Arbol y sustituye los sitios en los que se utiliza por TipoDatoMascota . Deberias llamar a tu árbol "árbol de mascotas" ya que solo servirá para organizar records del tipo TipoDatoMascota pero deberas creo leyendo tu descripción del problema no necestias nada más porque en principio tu árbol solo va a ser usado para trabajar con tipoDatoMascota. Sospecho que posteriormente quien te esté enseñanado añadira la necesidad de poder utilizar el arbol (y los otros tipos de estrucutras de datos) para poder utilizar disintos tipos y no siempre el mismo y en ese punto comenzará a explicar los punteros o la orientación a objetos. Creo que normalmente cuando alquien eseña a programar primero da pocas herramientas y despues pide que se ejerciten esas herramientas problemas que pueder solucionarse utilizandolas. Posteriormente se añaden complejidades que no pueden solucionarse con las herramientas que se conocen y se enseña una nueva herramienta para solucionar el problema. La orientación a objetos es la herramienta óptima para crear un árbol genérico. Los punteros y los tipos genéricos son herramientas que pueden utilizarse para conseguirlo si no se permite utilizar objetos. Pero siempre hay que aprender primero lo básico. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Unidad CRT para Delphi | Lord Delfos | Varios | 7 | 26-09-2008 18:18:00 |
Reusar consulta | Gaim2205 | SQL | 3 | 08-01-2008 21:06:49 |
reusar un mismo form | enecumene | OOP | 7 | 18-08-2007 01:44:48 |
Como BORRAR una unidad de RED en Delphi???? | AGAG4 | Redes | 1 | 28-04-2007 19:08:58 |
Unidad ZLib de Delphi: Necesita DLL? | Pandre | Varios | 2 | 04-04-2005 17:34:07 |
|