| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Jue 17 Mar, 2011 12:40 pm Asunto: Crear botones dinánicamente |
|
|
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 |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
|
| Volver arriba |
|
 |
tronxx Lt JG


Registrado: 30 May 2003Mensajes: 56Ubicación: Merida, Yucatan, Mexico
|
Publicado: Sab 26 Mar, 2011 4:40 pm Asunto: y como asignas la función al onclick ? |
|
|
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 |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Sab 26 Mar, 2011 5:01 pm Asunto: Re: y como asignas la función al onclick ? |
|
|
| 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 |
|
 |
escafandra Master

Registrado: 29 Nov 2007Mensajes: 625Ubicación: Madrid - España
|
Publicado: Sab 26 Mar, 2011 5:22 pm Asunto: |
|
|
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 |
|
 |
|