Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Crear Un Label En Tiempo De Ejecucion En C++ Builder (https://www.clubdelphi.com/foros/showthread.php?t=62512)

soancatl55 30-12-2008 03:43:12

Crear Un Label En Tiempo De Ejecucion En C++ Builder
 
Como le puedo hacer para poder crear labels, botones y componentes en tiempo de ejecucion.

Lo quiero usar en dado caso que si quiero solicitar datos, lo pueda hacer dinamicamente y que despues se vea en label.

En VB lo vi que se puede manejar en su propiedad llamada INDEX.

Y como se hace en builder.

Espero que me respondan.
:)

Luvac 30-12-2008 07:02:43

Tienes que crear un apuntador al nuevo objeto que vas a utilizar, aqui un ejemplo que utilizo en c++ builder:


TToolButton *cc=new TToolButton (this);//creas el apuntador y el nuevo objeto en tu caso para un label seria remplazar TToolButton por un TLabel

cc->Parent=ToolBar1;//le dises en donde va a aparecer si en la forma o en algun lugar determinado yo le indique que en el toolBar
cc->Name="boton"+String(y);aqui el nombre que va a llevar el nuevo componente

espero te sirva suerte.

escafandra 30-12-2008 11:27:42

Quizás falte un pequeño detalle a la explicación de Luvac:
Código:

InsertControl(Nuevo_Control_Creado_Dínámicamente);
Si no se hace, no lo verás.

Saludos. ;)

Luvac 30-12-2008 18:12:56

A mi me funciona nada mas como lo deje, para que sirve el otro y como lo utilizas si me pudieras dar una explicasion.

escafandra 30-12-2008 19:48:23

Cita:

Empezado por Luvac (Mensaje 332652)
A mi me funciona nada mas como lo deje, para que sirve el otro y como lo utilizas si me pudieras dar una explicasion.

Para colocar controles visuales de las VCL creados dinámicamete (tiempo de ejecución) en un formulario.

Saludos.

PD. Tú lo colocaste en un ToolBar

soancatl55 30-12-2008 21:43:41

Gracias Me Sirvio De Mucho
 
Muchas gracias por responder, tenia tiempo que intenteba hacerlo y nada mas no podia. Me sirvio todo lo que me dijeron y al final me quedo un ejemplo sencillito.
//--------
int y=1;
for(int i=0; i<10;i++)
{
TLabel *cc = new TLabel (this);//
cc->Visible=true;
cc->Left=40+y;
String aux=y;
cc->Name="hola"+aux;
y= y + 50;
InsertControl(cc);
}
//--------

y si no se pone InsertControl();
no se ve el label.



Tengo que programar en c++ builder, por la escuela, y me daria mucho gusto que me ayuden, por que lo mas seguro es que saldran muchas dudas =)
Ya se puede cerrar el post =)

jimy99 14-10-2011 16:51:09

pero si son edit
 
hola en caso de que sean Edit y tenga que utilizarlos luego como lo hago..

en caso de que tenga que crear 3 edit en tiempo de ejecuccion pa obtener los lados de una figura.. y luego tenga que utilizarlos como lo hago....
se supone que aun no se an creado los Edit......

ecfisa 14-10-2011 18:04:04

Hola jimy99 y bienvenido a los foros de Club Delphi :)

Como a todo recién ingresado te invito a que le des una leida a nuestra Guía de estilo.

Te pongo un ejemplo con Edits
Código:

#define NRO_EDITS 3 

void __fastcall TForm1::CrearEdits(int Cant)
{
 for(int i=0;i < NRO_EDITS; i++) {
    TEdit *TE = new TEdit(this);
    TE->Left = 8;
    TE->Height = 25;
    TE->Width = 100;
    TE->Top = i* 45 + TE->Height;
    TE->Name = "Edit" + IntToStr(i+1);
    TE->OnKeyPress = EditKeyPress;    // asignarle un evento x
    TE->Parent = this;    // o InsertControl(TE);
  }
}

void __fastcall TForm1::EditKeyPress(TObject *Sender, char &Key)
{
  Beep();
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  CrearEdits(NRO_EDITS);
}

Un saludo.

omarodalis 30-11-2011 00:14:06

una duda...
 
disculpa ecfisa, solo queria preguntarte como creo un metodo aparte que me cree los Edits en tiempo real, por ejemplo:

void crearEdits(int cantidad){

for(int i=0;i <cantidad; i++)
{
TEdit *TE = new TEdit(this);
TE->Left = 8;
TE->Height = 25;
TE->Width = 100;
TE->Top = i* 45 + TE->Height;
TE->Name = "Edit" + IntToStr(i+1);
TE->Parent = this; // o InsertControl(TE);
}
}


/// Y después mandarlos a llamar al hacer clic en un boton por ejemplo... yo hago eso pero me marca este error
[BCC32 Error] CrearVariables.cpp(21): E2297 'this' can only be used within a member function...

despues lo intento tal y como esta en tu ejemplo pero me manda este error...
[BCC32 Error] CrearVariables.cpp(13): E2316 '_fastcall TForm1::CrearBoton(int)' is not a member of 'TForm1'


Me gustaria que me explicaras mejor ó como solucionar mi problema.. muchas gracias de ante mano... saludos:confused:

ecfisa 30-11-2011 00:30:46

Cita:

despues lo intento tal y como esta en tu ejemplo pero me manda este error...
[BCC32 Error] CrearVariables.cpp(13): E2316 '_fastcall TForm1::CrearBoton(int)' is not a member of 'TForm1'
Hola.

Hacé click en la pestaña Unit1.h (situada en la parte inferior de la ventana del editor) y agrega en la sección private o public de la clase TForm1 la siguiente línea:
Código:

  void __fastcall CrearEdits(int cantidad);
Saludos.

omarodalis 30-11-2011 17:30:32

Agradecimiento
 
he puesto en marcha el consejo, muchas gracias, ya esta saliendo todo de maravilla.. gracias por el apoyo, aun soy muy nuevo en este entorno y en el lenguaje_; estoy haciendo un proyecto un poco complicado sobre dlp-usb y he aprendido bastante en este lenguaje.... muchas gracias por el apoyo.. muy agradecido... saludos:)


otra duda:

ahora que creo los edit en tiempo real y ¿como capturar sus valores al presionar otro button? ... de nuevo gracias por la ayuda..

ecfisa 30-11-2011 18:31:22

Hola omarodalis.

Te agradecería que pusieses esta última pregunta en un nuevo hilo tál como sugiere el punto 8 de la guía de estilo.

Saludos y muchas gracias por tu colaboración :)

omarodalis 30-11-2011 18:49:15

muchas gracias
 
ok.. lo haré.. muchas gracias .. saludos


La franja horaria es GMT +2. Ahora son las 13:03:31.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi