 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
JesúsGandia Master


Registrado: 17 Jul 2004Mensajes: 403Ubicación: Gandia, Valencia
|
Publicado: Jue 21 Jul, 2005 2:51 pm Asunto: Componentes en otro Form y acceso a ellos |
|
|
Mi problema es el siguiente:
No sé como cambiar o acceder a componentes que tengo enl el Form1 desde el Form2 o un TFrame que tengo en el Form1, pero sin utilizar su nombre. Es decir accedo a ellos por medio de "Components". El problema es que no sé como llamarlos desde otro formulario.
Ejemplo:
| Código: |
void __fastcall TfrmVentas::LbCoste_ActFamClick(TObject *Sender)
{
// ACTUALIZAR FAMILIAS
MDatos->IBQArticulos->Close();
MDatos->IBQArticulos->SQL->Clear();
MDatos->IBQArticulos->SQL->Add("SELECT TextoBoton,Foto FROM Grupos");
MDatos->IBQArticulos->Open();
for(int N = LMDSpeedButton1->ComponentIndex; N <= LMDSpeedButton75->ComponentIndex; N++)
{
if(N == 17)N++;
if(N == 33)N++;
if(N == 49)N++;
if(N == 65)N++;
// y le paso los campos TextoBoton, Imagen al los TSpeedButton
((TLMDSpeedButton*)Components[N])->Caption = MDatos->IBQArticulos->FieldByName("TextoBoton")->AsString;
((TLMDSpeedButton*)Components[N])->Glyph->Assign(MDatos->IBQArticulos->FieldByName("Foto"));
// Si los botones de grupo no tienen texto en el caption los oculto para que el usuario no lo pueda ver ni tocar
if(((TLMDSpeedButton*)Components[N])->Caption == "" && BtnEstado->Tag == 0)
((TLMDSpeedButton*)Components[N])->Visible = false;
// Si estoy en la configuracion de los grupos muestro todos los botones para poder configurarlos
if(BtnEstado->Tag == 2)
((TLMDSpeedButton*)Components[N])->Visible = true;
MDatos->IBQArticulos->Next();
}
// Ejecuto esta funcion para que el primer TLMDSpeedButton este presionado y se ejecute
SBArticulos1->Pressed = true;
LMDSpeedButton1->Pressed = true;
LibretaGrupo->ActivePage = PaginaGrupo1;
SBArticulos1->Click();
}
//---------------------------------------------------------------------------
|
Esta es la forma que quiero utilizar para modificar sus propiedades, pero desde otro Form y no sé como acceder a ellos, me refiero a esta linea:
| Código: |
((TLMDSpeedButton*)Components[N])->Visible = false;
|
Esta linea está en el Form1 y quiero ponerlo a true, o cambiar el contenido de "Caption", pero desde el Form2.
No sé si me he explicado. Gracias de antemano a todos. _________________ Muchos hombres no se equivocan jamás porque no se proponen nada razonable. |
|
| Volver arriba |
|
 |
LordNemesis Master


Registrado: 31 Dic 2003Mensajes: 340Ubicación: México
|
Publicado: Jue 21 Jul, 2005 5:54 pm Asunto: |
|
|
Pueds acerlo de la siguiente manera... en el Form1 creas el FOrm2, haciendo pero como propietario el Form1, asi:
En el Form1
| Código: |
Form2 = new TForm2(this);
Form2->ShowModal();
|
En el codigo anterior lo que estamos haciendo es crear la Forma2 y como propietario de dicha forma, queda la forma1, por el parametro que le estamos pasando al constructor...
y posteriormente en el Form2 ya podemos hacer esto:
| Código: |
((TuComponente*)Owner->Components[n])->Propiedad_Metodo
|
y ebn realidad lo que esta pasando aqui, es que la propiedad Owner es un apuntador al componente que creo el objeto desde la cual estamos accesando, en este caso, Owner es un apuntador a Form1 _________________ Dirección Municipal de Informática
H. Ayuntamiento de Tijuana
Arriba Lopez Obrador !!!
Los Mexicanos Merecemos Respeto !!! |
|
| Volver arriba |
|
 |
JesúsGandia Master


Registrado: 17 Jul 2004Mensajes: 403Ubicación: Gandia, Valencia
|
Publicado: Vie 22 Jul, 2005 1:14 pm Asunto: Gracias LordNemesis |
|
|
Muchas Gracias "LordNemesis", solo me faltaba conocer la referencia al Opjeto "Owner"; como siempre las soluciones cuando se saben son sencillas de comprender. _________________ Muchos hombres no se equivocan jamás porque no se proponen nada razonable. |
|
| Volver arriba |
|
 |
|
|
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
|
© 2002–2026 Club Builder · Funciona con phpBB.
|