FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Componentes en tiempo de diseño
Señores,
Sigo luchando por aprender sobre la creación de componentes, pero encuentro muchos problemas, ha ver si pudierais ayudarme. Tengo un componente no visual y me interesaría que cuando lo inserto en un formulario me creara otro componente, visual o no, dentro de ese formulario, por ejemplo un TLabel o un TADOConnection. ESTAMOS EN TIEMPO DE DISEÑO. Ni siquiera sé si eso es posible. Espero que alguien pueda sacarme de este estancamiento. |
#2
|
|||
|
|||
Sí que se puede hacer.
Si dicho componente "adjunto" lo creas en el mismo constructor Create, debes pasarle como Owner el mismo que recibes, para que dependa del mismo formulario. Si el componente "adjunto" es visual, es decir un Control, debes decidir dónde se ubicará, si dentro del formulario o bien dentro de un Panel por ejemplo, asignándole la propiedad Parent:
Lo más normal, al trabajar en diseño, es que el Owner sea el formulario sobre el que estés trabajando. Saludos
__________________
Guía de Estilo |
#3
|
|||
|
|||
Gracias Andres1569
Yo ya había probado algo parecedo
No condiciono la asignación de Parent porque previamente ya lo había hecho poniento un breakpoint y comprobando el tipo AOwner. También he probado de utilizar ComponentState, pero poniendo un breakpoint en tiempo de diseño no me funciona, no sé si tiene algo que ver. Pero no me funciona, ¿qué piensas que hago mal? Última edición por ElDuc fecha: 26-03-2010 a las 23:00:17. |
#4
|
|||
|
|||
¿Qué es lo que no funciona? ¿No te aparece el Label por ningun sitio?
El objeto Owner, ¿de qué clase es? ¿es realmente un formulario? Si es un Control trata de obtener el formulario padre mediante GetParentForm(Owner) a ver qué te devuelve. Ahora no tengo a mano el Delphi y te hablo de memoria, pero hace años implementé algo así, puede que haya que acceder al diseñador (propiedad FormDesigner -o Designer- de un TForm) pero esto desde Delphi 6 plantea problemas pues no está permitido durante RunTime utilizar clases propias del diseño (contenidas en la unit DsgnIntf.pas) Siento no poder ayudarte más en este momento ...
__________________
Guía de Estilo |
#5
|
|||
|
|||
Estoy haciendo muchas pruebas, pero no funciona.
Es como si el método Create de mi componente sólo se ejecutara cuando ejecuto el programa (Run) pero no cuando inserto mi componente en el formularioa, que es cuando realmente necesito crear el otro componente en el formulario. Posiblemente sea otro método o evento lo que debo controlar. |
#6
|
|||
|
|||
Es evidente que está sucediendo lo que he descrito en el post anterior.
Ge conseguido que mi componente no visual cree otro componente visual en el momento que ejecuto el programa, método Create del componente, pero no cuando inserto el componente no visual en el formulario que es cuando yo lo necesito. Creo que debo actuar sobre otro método o evento, ¿sabéis en cual? |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
No veo, en tiempo de diseño los nombres de los componentes | QuarkBcn | Varios | 3 | 19-12-2007 09:38:31 |
eventos en tiempo de diseño | jar | OOP | 0 | 27-01-2007 22:09:11 |
Indices En Tiempo De Diseño?? | amadis | Conexión con bases de datos | 0 | 12-04-2006 20:22:01 |
Diseño en tiempo de ejecucion | Nelson Alberto | Impresión | 2 | 26-01-2006 09:34:12 |
Instalar componentes solo en tiempo de diseño | DarKraZY | Varios | 0 | 19-08-2003 16:47:37 |
|