![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
||||
|
||||
|
Hola,
Bueno. Pues ya parece que puedo decir que no era tan complicado. Al cabo faltaba la creación de la clase que se utiliza en el componente y que es la que contiene las propiedades que hay que mostrar bajo el símbolo "+" en el Inspector de Objetos. Esto y alguna otra cosa, porque he añadido algunas hasta dar con el secreto. Con el permiso de Aldo, observa, CHICoLiTa, el siguiente código, por si puede ayudarte en algo:
Última edición por dec fecha: 05-09-2005 a las 20:40:41. Razón: (corrección del código fuente) |
|
#2
|
|||
|
|||
|
Nos esta faltando el constructor del componenete para que en la clase TPersisten se puedan crear el 'desplegable'.
Voy a ver si me sale y comento la solucion final |
|
#3
|
|||
|
|||
|
Vaya, he llegado tarde por unos minutos
dec ha puesto justo lo que faltaba Sobretodo muchisimas gracias a Aldo Una cosita mas que se hacer |
|
#4
|
||||
|
||||
|
Nada más un detalle respecto del ejemplo de dec. La clase contenedora se encarga de la construcción y destrucción del objeto Pruebas, es decir, le pertenece. Por tanto hay que proteger la propiedad contra cambios no deseados: si se asigna
DePruebas.Pruebas := ObjetoPruebas estamos sustituyendo el objeto que originalmente pertenecía a DePruebas por otro y al hacer FPruebas.Free será este otro el que estemos destruyendo y el objeto original se habrá quedado atorado en memoria. Normalmente, para este tipo de propiedades hay que definir un método set:
donde SetPruebas se encargará de copiar el contenido. Puede hacerlo campo por campo aunque lo usual es transferir ese copiado al método Assign de TPruebas:
y dejar SetPruebas con: FPruebas.Assign(Value); // Saludos |
|
#5
|
||||
|
||||
|
Hola,
roman, me queda una duda, ¿viste que edité el código fuente para añadir el método "SetPruebas" tal como decías? Ahora bien, en donde se lee el comentario "{ ¿Acaso falta algo que hacer aquí? }"... ¿hay, efectivamente, que hacer algo más? Actualización: Me temo que sí que había que hacer algo... claro está... creo que con lo siguiente sería bastante, y si me equivoco aquí estoy para que se me diga en qué. Y en todo caso muchas gracias roman.
Última edición por dec fecha: 05-09-2005 a las 20:58:33. Razón: (actualización) |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|