Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Componentes en otro Form y acceso a ellos

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Componentes en otro Form y acceso a ellos Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Gracias LordNemesis Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor
Mostrar mensajes de anteriores:   
Cambiar a:  
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


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.