 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Invitado
|
Publicado: Vie 16 Jul, 2004 10:45 pm Asunto: "Meter Forms" dentro de un TComponent |
|
|
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 |
|
 |
Invitado
|
Publicado: Lun 19 Jul, 2004 7:03 pm Asunto: Solucionado |
|
|
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 |
|
 |
|
|
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.
|