| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Koibn Invitado
|
Publicado: Vie 03 Oct, 2003 1:35 pm Asunto: Crear botones mediante un componente |
|
|
Hola estoy intentado crear un componente q cuando lo ponga en el form me salgan varios botones determinados por el componente q estoy programando(intentado diria yo ).
El componente es un derivado de TDBNavigator.
__fastcall TMyDBNavigator::TMyDBNavigator(TComponent* Owner)
: TDBNavigator(Owner)
{
DB= new TSQLClientDataSet(Owner);
DataSource= new TDataSource(Owner);
BInsertar= new TBitBtn(this->ParentWindow);
}
Los 2 primeros componente si me los pone bien, pero al poner el boton me dice q el componente q he puesto no tiene parent windows. Por ahi lei en el manual que el handle se crea despues del constructor.
Asi q no se q hacer.Si alguien sabe algo seria de gran ayuda.
Gracias. |
|
| Volver arriba |
|
 |
Argone Lt


Registrado: 23 Jun 2003Mensajes: 97Ubicación: Las Palmas.. España
|
Publicado: Vie 03 Oct, 2003 1:41 pm Asunto: |
|
|
Hola prueba con esto: | Código: |
BInsertar= new TBitBtn(this);
BInsertar->Parent = this;// Si lo tienes sobre un panel pues this->Panel1 o lo que sea. |
Acuerdate de definirle el resto de las propiedades:
Top
Left
Caption,....
Recuerda que siempre sera con referencia al parent que le pongas. Cuidate
Argone |
|
| Volver arriba |
|
 |
Koibn Invitado
|
Publicado: Vie 03 Oct, 2003 2:16 pm Asunto: |
|
|
Gracias Argone pero lo unico q consigo con eso es crear un boton dentro del objeto y eso no es lo q quiero. Lo que quiero es crearlo en el formulario.
Pero me ha sido util, a ver si pienso alguna cosa.
Muchas Gracias por todo. |
|
| Volver arriba |
|
 |
Argone Lt


Registrado: 23 Jun 2003Mensajes: 97Ubicación: Las Palmas.. España
|
Publicado: Dom 05 Oct, 2003 10:41 pm Asunto: |
|
|
Vamos a ver si te entiendo...Tu lo que tienes es un formulario y mediante un objeto pretendes crear botones en ese formulario...Voy bien?....La verdad es que no se si esto te puede funcionar pero por probar tampoco se pierde mucho.
Supongamos que tu formulario se llama Form1 y que el boton lo quieres poner sobre un panel que tienes en el form1.
Objeto.cpp
[/code]
#include "Form1.h"
TObjeto::CrearBoton() {
BInsertar = new TBitBtn(this);
BInsertar->Parent = Form1->Panel1;
BInsertar->Top = 0;
BInsertar->Left = 8;
BInsertar->Height = 32;
BInsertar->Width = 32;
BInsertar->Caption = "Nombre boton";
}
| Código: |
Lo que ya no tengo tan claro es como puedes implemetar los metodos onclick y ese tipo de cosas..pero bueno si te funciona es un punto por el que empezar. Si no te va de entrada prueba a poner en vez de this Form1. Suerte.
Argone |
|
|
| Volver arriba |
|
 |
Koibn Invitado
|
Publicado: Lun 06 Oct, 2003 8:49 pm Asunto: mas de lo mismo |
|
|
Buenas.Te cuento un poco mejor la historia.Estoy programando un "componente" asi que no hay formar de acceder al formulario directamente.Una vez q pueda conseguir el formulario donde se pone el componente es coser y cantar pero no se como hacerlo ya que es un "componente" con lo que estoy tratando.
Y lo de #include "Form1.h" no lo puedo poner. Y tampoco puedo coger el handle padre del componente pq donde me interesa poner la funcion q cree los botones es en el constructor y cuando se esta construyendo el objeto no se sabe el handle padre pq aun no se le ha asignado(viene en el manual).
Asi q esa es la historia. Te agradezco mucho q me contestes.
Un saludo desde Granada. |
|
| Volver arriba |
|
 |
|