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 

"Meter Forms" dentro de un TComponent

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: "Meter Forms" dentro de un TComponent Responder citando

Esta es como para _Leo...

Tengo un par de Forms el primero llama al metodo Show() del segundo
y quiero colocarlos ambos en un componente, ya he podido ambos en
el compo pero no se como acceder desde el primero al segundo...
he intentado esto:
Código:
//---------------------------------------------------------------------------

#ifndef CompoH
#define CompoH
//---------------------------------------------------------------------------
#include <SysUtils.hpp>
#include <Controls.hpp>
#include <Classes.hpp>
#include <Forms.hpp>
#include "uForm1.h"//el formulario principal
#include "uForm2.h"
//---------------------------------------------------------------------------
class PACKAGE TCompo : public TComponent
{
private:

void __fastcall Button1Click(TObject *Sender);
protected:
public:
        __fastcall TCompo(TComponent* Owner);
        TForm1 *F1;
        TForm2 *F2;
        void Show1();
        void Show2();
__published:
};
//---------------------------------------------------------------------------
#endif
 
y en el .cpp
Código:

#include <vcl.h>
#pragma hdrstop

#include "Compo.h"
#pragma link "uForm1"
#pragma link "uForm2"
#pragma package(smart_init)
//---------------------------------------------------------------------------
// ValidCtrCheck is used to assure that the components created do not have
// any pure virtual functions.
//

static inline void ValidCtrCheck(TCompo *)
{
        new TCompo(NULL);
}
//---------------------------------------------------------------------------
__fastcall TCompo::TCompo(TComponent* Owner)
        : TComponent(Owner)
{
F1=new TForm1(this);
F2=new TForm2(this);
F1->Button1->OnClick=Button1Click;
}
//---------------------------------------------------------------------------
namespace Compo
{
        void __fastcall PACKAGE Register()
        {
                 TComponentClass classes[1] = {__classid(TCompo)};
                 RegisterComponents("Otros", classes, 0);
        }
}
//---------------------------------------------------------------------------
void TCompo::Show1()
{

F1->Show();
}
//********************
void TCompo::Show2()
{

F2->Show();
}
//****************************
void __fastcall TCompo::Button1Click(TObject *Sender)
{
F2->Show();
}
//*************************************************

Si trato de asignar el evento como muestro aqui, se compila he instala
bien pero genera una excepcion al depositarlo en un form, si uso el evento
que esta en el F1 tambien compila e instala bien pero el error es al
pulsar el button.

¿Que esta mal?
Volver arriba
Mensaje    Asunto: Solucionado Responder citando

El evento Button1Click ya existe en F1 y colide con el del mismo nombre
del componente, otro tip si le sirve de algo a alguien es recomendable cambiar los nombres por defecto de los formularios y otros componentes
para evitar posibles violaciones de acceso.
Volver arriba
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.