![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
![]() quisiera saber si se puede hacer un vector de componentes,
![]() normalmente uno tiene tantos componentes como vaya colocando, pero si yo quiero que se hagan tantos componentes como fueran necesarios segun datos ingresados... Ejemplo: TLabel *Label1; TLabel *Label2; TLabel *Label3; ... Sucesivamente pero se puede hacer de alguna manera que quedara como: TLabel Label[10]; en este caso serian 10 Label, pero entonces se crearían según necesidad de los datos a ingresar como: TLabel Label[variable]; aunque con las variables se puede usar el new, no se si se pueda algo parecido con las formas, no se si la idea que tengo se pueda realizar, o lo mas aproximado posible. Gracias! |
#2
|
||||
|
||||
Leo la siguiente frase:
Cita:
Por lo que sé, Builder también usa VCL, por lo que debería funcionar algo así (ojo, que lo hago de memoria y no tengo Builder para probarlo, de hecho nunca lo he usado así que no estoy seguro de cómo define los métodos y las propiedades): Código:
/* Añadir un label al formulario. */ int MiFormulario::AnnadeLabel (char *TextoLabel) { TLabel *Objeto; // Ahora no recuerdo cuál es el método para añadir componentes a un TForm, // y no me apetece buscarlo. this->addComponent (Objeto = new TLabel (this)); // Voy a suponer que usa un patrón "get/set" para las propiedades. Objeto->setCaption (TextoLabel); Objeto->setParent (this->PanelDeEtiquetas); Objeto->Tag = this->CuentaElementos++; // Ya no recuerdo cómo es la clase string, pero esto debería funcionar. Objeto->setName ((string)("etiqueta") + itostr (Objeto->Tag)); return Objeto->Tag; } Si necesitas obtener un objeto concreto, accede a la lista de componentes de TForm (supongo que en Builder también lo implementan) y busca por nombre o por Tag. [edito] Acaba de ocurrírseme que puedes usar realloc. Última edición por Ñuño Martínez fecha: 01-06-2011 a las 13:30:30. |
#3
|
||||
|
||||
Pongamos un ejemplo sencillo:
Código:
void __fastcall TForm1::Button1Click(TObject *Sender) { TLabel* L = new TLabel(this); // Creamos y asignamos el Owner L->Left = 0; L->Top = 0; L->Caption = "Label"; L->Parent = this; // Asignamos el Parent } Parent: La ventana donde se mostrará el nuevo componente. Puede interesarte que la VCL tiene también la Clase TList, una clase para manejar arrays de punteros. Saludos. |
#4
|
|||
|
|||
la verdad no me deja nada claro, mejor dicho, como seria el metodo para crear n cantidad de componentes Edit segun sea necesario... un componente dinamico, gracias!
ejemplo: si necesitara tomar los nombres de ciudades visitadas y en componente Edit ingresaran una cantidad, ejemplo 6 a continuacion mostrara 6 componenetes Edit para ingresar en cada uno un nombre de ciudad, y en la siguiente ejecucion fueran 8 mostrara los 8 componentes necesarios, pero que no haya necesidad de hacerlos uno a uno si depronto se llegan a necesitar mas o menos no sea problema!...gracias por la colaboracion! Última edición por odiseeus fecha: 06-06-2011 a las 10:53:18. |
#5
|
||||
|
||||
Hola.
No entendí bien lo que preguntaste en tu primer mensaje. Pero ahora, luego de leer el segundo, me parece que es lo que te contesto escafandra. Por ejemplo: Código:
void __fastcall TForm1::CrearEdits(int Cant) { for(int i=0;i < 10; i++) { TEdit *TE = new TEdit(this); TE->Left = 8; TE->Top = i*30+20; TE->Name = "Edit"+IntToStr(i+1); TE->Parent = this; } } Ejemplo de llamada que crea 10 TEdit: Código:
void __fastcall TForm1::Button1Click(TObject *Sender) { CrearEdits(10); } Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 06-06-2011 a las 11:11:10. |
#6
|
|||
|
|||
que pena no haberme hecho entender bien desde un principio, pero es exactamente como lo explicaste ecsifa... muchas gracias!... completamente útil tu colaboración!... Gracias!
|
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Cantidad de -A- en un vector | luisito2011 | Varios | 9 | 13-05-2011 08:27:46 |
vector con timage | einarcito | Gráficos | 1 | 20-09-2008 16:31:53 |
Guardar en un archivo el vector de componentes de una form | Majo | Varios | 33 | 19-02-2004 19:28:51 |
Liberar un vector... | Tanix | PHP | 6 | 28-08-2003 09:36:36 |
un vector de checkbox | superhopi | OOP | 3 | 07-05-2003 16:42:34 |
![]() |
|