Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-06-2011
odiseeus odiseeus is offline
Miembro
NULL
 
Registrado: jun 2011
Posts: 31
Poder: 0
odiseeus Va por buen camino
Red face

que pena preguntar tanto, pero después de varios y distintos intentos a lo cual no he podido, como se hace para eliminar o destruir los mismos componentes creados en la explicación anterior? gracias.
Responder Con Cita
  #2  
Antiguo 06-06-2011
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Cita:
Empezado por odiseeus Ver Mensaje
que pena preguntar tanto, pero después de varios y distintos intentos a lo cual no he podido, como se hace para eliminar o destruir los mismos componentes creados en la explicación anterior? gracias.
Quizás no leíste detenidamente mi mensaje:
Cita:
Empezado por escafandra Ver Mensaje
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
}
AOwner: Se encargará de destruir el nuevo componente.
Parent: La ventana donde se mostrará el nuevo componente.
Resumo: si al crear el nuevo componente lo creas con el parámetro AOwner como el formulario contenedor, será éste el que se encargue de la destrucción cuando el formulario se destruya.

Saludos.
Responder Con Cita
  #3  
Antiguo 07-06-2011
odiseeus odiseeus is offline
Miembro
NULL
 
Registrado: jun 2011
Posts: 31
Poder: 0
odiseeus Va por buen camino
Question

ok el owner se encarga eliminar los componentes al terminar la ejecución del formulario! (entendido)... pero si se crean en tiempo de ejecución, como destruyo esos mismos en tiempo de ejecución?, sin ser necesario finalizar el formulario. gracias!
Responder Con Cita
  #4  
Antiguo 07-06-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola odiseeus.

Una forma puede ser:
Código:
...
TObjectList *ObjLst = new TObjectList;

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;
    ObjLst->Add(TE);
  }
}

void __fastcall TForm1::btnCrearClick(TObject *Sender)
{
  CrearEdits(10);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::btnLiberarClick(TObject *Sender)
{
  ObjLst->Free();
}
...
Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 08-06-2011
odiseeus odiseeus is offline
Miembro
NULL
 
Registrado: jun 2011
Posts: 31
Poder: 0
odiseeus Va por buen camino
Smile

nuevamente mil gracias! ecfisa, siempre he dicho que es grandioso tener un conocimiento, pero realmente ingenioso es saberlo trasmitir!... y en este foro si que lo saben hacer!.. mil gracias de nuevo!.. éxitos!
Responder Con Cita
  #6  
Antiguo 09-06-2012
odiseeus odiseeus is offline
Miembro
NULL
 
Registrado: jun 2011
Posts: 31
Poder: 0
odiseeus Va por buen camino
Post

hola de nuevo, una preguntas mas, si quiero acceder a una de las propiedades de los Edit creados en el ejemplo anterior, como seria, pues no puedo colocar ej:

Código:
Edit1->Text = "texto1";
Edit2->Text = "texto2";
...
//n cantidad de Edit creados.... como se hace?
espero haberme explicado bien, Gracias
Responder Con Cita
  #7  
Antiguo 09-06-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola odiseeus.

Podes acceder por el método FindComponent, por ejemplo:
Código:
void __fastcall TForm1::Button1Click(TObject *Sender) {

/* Forma 1 (recomendada) */
TEdit *e2 = static_cast<TEdit*>(FindComponent("Edit2"));
  e2->Text = "Texto 2";
  e2->Color = clMoneyGreen;

/* Forma 2 */
TEdit *e1 = ((TEdit*)FindComponent("Edit1"));
  e1->Text = "Texto 2";
  e1->Color = clSkyBlue;

/* a una propiedad */
((TEdit*)FindComponent("Edit3"))->Cursor = crHandPoint;
}
Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
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


La franja horaria es GMT +2. Ahora son las 15:03:08.


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
Copyright 1996-2007 Club Delphi