Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Crear botones dinánicamente

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Crear botones dinánicamente Responder citando

Estoy usando este código para crear botones en un formulario distinto del que va llamarlo:
Código:
for (int nItem = 0; nItem < slTextos->Count; nItem ++)
{
     TButton *Boton = new TButton(fMensaje);
     Boton->Action  = fMensaje->ActionList->Actions[nItem];
     Boton->Caption = slTextos->Strings[nItem];
     Boton->Height  = 25;
     Boton->Left    = nWidth + 110 * nItem;
     Boton->Name    = "Button" + FormatFloat("0", nItem + 1);
     Boton->Top     = Maximo(fMensaje->Label1->Height, fMensaje->Imagen->Height) + 15;
     Boton->Width   = 100;
     Boton->Visible = true;
}
fMensaje->ShowModal();

El código se ejecuta sin dar errores pero al mostrarse el nuevo formulario no aparece ningun botón ¿Qué estoy haciendo mal?

Otra cosa: ¿Cómo puedo saber que espacio ocupa el Caption del botón?
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Ya está solucionado. Se me había olvidado añadir Boton->Parent = fMensaje;
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: y como asignas la función al onclick ? Responder citando

hola y como asignas que cuando hagan click se ejecute el código que deseas ?
dinámicamente claro

Gracias
_________________
La caja decía, requiere Win95 o superior así que instalé Linux.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Re: y como asignas la función al onclick ? Responder citando

tronxx escribió:
hola y como asignas que cuando hagan click se ejecute el código que deseas ?
dinámicamente claro

Gracias

Con TActionList de la paleta Standard. En el código del primer mensaje está puesto. Es un elemento que no había usado nunca pero es muy interesante: Cada una de la acciones que se definen es equivalente al evento OnClick de un botón.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)


Ultima edición por Angel el Sab 26 Mar, 2011 5:38 pm, editado 1 vez
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

También puedes realizar la asignación dirrcta del evento OnClick a tu función de tratamiento, por ejemplo:
Código:
.......
Boton[0]->Name = "MiBoton"
Boton[0]->OnClick = ButtonClick;
.......

void __fastcall TForm1::ButtonClick(TObject *Sender)
{
  if(((TButton*)Sender)->Name == "MiBoton"){
   // el código
  }
 
}


Saludos.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.