![]() |
Transferir propiedades a un hijo
Vuelvo al ejemplo de mi hilo anterior:
Supongan que tengo un componente de tipo TCustomControl. Dentro de él, entre las variables privadas creo una (FEdit) de tipo TEdit. y dentro del constructor: Ahora... como el componente que registro es de tipo TCustomControl, obviamente solo estarán publicadas (published) en diseño las propiedades del mismo, y ninguna del TEdit; Supongan que yo quiero que aparezcan publicadas TAMBIEN las del componente hijo (o sea en nuestro caso las del EDIT). Hay alguna forma de hacerlo en bloque o la única forma es hacer: para cada una?. Además de ser tedioso y excesivamente extenso en código la verdad no estoy seguro como hacer para hacer una propiedad falsa para el componente padre del tipo compatible con la del TEdit en el caso que solo esté definida en su clase, p.ej "CharCase". |
¿Por qué no simplemente publicas toda la subcomponente?
De esta manera la propiedad Edit aparecerá en el inspector de objetos similar, por ejemplo, a la propiedad Font del formulario: con un + a la izquierda que al expandirlo mostrará todas las propiedades de la componente Edit. Esto lo acabo de probar en Delphi7. Creo recordar que en Delphi6 había algún problema con SetSubComponent. // Saludos |
Aki te va
No crees ke seria mas sencillo solo al crear tu nuevo componente, ke herede no del componente TCustomControl, sino directamente del componente TEdit.
Código:
unit NewComp; Código:
constructor TNewComp.Create(AOwner : TComponent); |
Es cierto, aunque si lo que quisiera es un TEdit, yo no haría un componente nuevo, sinó que usaría el de la paleta Standard :D .
El componente que estaba haciendo es un poco más complejo que un TEdit, de hecho la variable interna de la cual quería publicar propiedades no era un TEdit sinó un particular descendiente de TCustomComboBox que yo mismo había creado, aunque el TControl tenía también un TEdit, etre otras propiedades nuevas. No importa la idea original, si pretendo que la respuesta sea sencilla trato de hacer la pregunta sencilla, es decir, solamente pregunto lo que no sé. Adaptar la respuesta a mis complejidades particulares es un divertimento que a los que no somos profesionales de la programación no nos gusta renunciar:p Me gusta que me enseñen a jugar al ajedrez pero no que elijan la pieza que muevo... si pierdo, preguntaré después porqué. De todas formas esto fue dicho con buena onda y agradecimiento no solo a DarkDrakon sino a todos amigos de este foro de quien he aprendido mucho, más y mejor que en mis pocos cursos de informática. Y si no suelo escribir este agradecimiento es porque lo considero sobreentendido. un abrazo |
:confused: :confused: Leiste la respuesta de roman, te sirvió???.
Cita:
Saludos |
La franja horaria es GMT +2. Ahora son las 03:26:39. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi